我的目标是从文件中读取和写入对象(使用文件I / O)。这些对象是存储在动态arrayList
中的userinput(name,int value,double value等..)。 arrayList
在我的主类中声明。作为我的程序的进一步改进,我想将这些数据保存在文件中,我创建了另一个类ReaderWriter
以实现file I/O
。
现在我怎样才能在arrayList
课程中引用ReaderWriter
?
我的申请很大。我将展示与我的问题相关的部分内容:
主:
public static void main(String[] args) {
System.out.println("WELCOME TO OUR BANK!\n\n");
List<BankAccount> bankAccounts = new ArrayList<BankAccount>();
}
getter和setter的类:
public class BankAccount {
private String name;
private int accNum;
private double initiateAmount;
//constructor
public BankAccount() {
this.name = null;
this.accNum = 0;
this.initiateAmount = 0;
}
public void setName(String name) {
this.name = name;
.........................
.......................
............
读写器:
public void writeToFile(){
try {
FileOutputStream fos=new FileOutputStream("C:\\Users\\Jabir Al Fatah\\Documents\\NetBeansProjects\\BankFile.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject();//take the arrayList variable
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void readFromFile(){
try {
FileInputStream fis=new FileInputStream("C:\\Users\\Jabir Al Fatah\\Documents\\NetBeansProjects\\BankFile.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
//make an arrayList to get those object back
//arrayList
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:5)
您为writeToFile方法提供了一个具有ArrayList类型的参数。现在,您在main中创建一个ReaderWriter实例,并使用方法writeToFile。在readFromFile中,您必须添加一个返回语句,该语句也来自ArrayList类型。现在您可以使用methode填充ArrayList实例。
正确代码:
;
主:
public void writeToFile(ArrayList<BankAccount> accounts){
try {
FileOutputStream fos=new FileOutputStream("C:\\Users\\Jabir Al Fatah\\Documents\\NetBeansProjects\\BankFile.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(accounts);
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public ArrayList<BankAccount>readFromFile(){
try {
FileInputStream fis=new FileInputStream("C:\\Users\\Jabir Al Fatah\\Documents\\NetBeansProjects\\BankFile.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
//make an arrayList to get those object back and return the list
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
传递给:
except