gpt4 book ai didi

java - 如何从另一个类访问 arrayList (存储在主类中)?

转载 作者:行者123 更新时间:2023-12-01 16:58:25 24 4
gpt4 key购买 nike

我的目标是读取对象并将其写入文件(使用文件 I/O)。这些对象是存储在动态 arrayList 中的用户输入(名称、int 值、 double 值等)。 arrayList 是在我的主类中声明的。作为对我的程序的进一步改进,我想将这些数据保存在文件中,我创建了另一个类 ReaderWriter 来实现文件 I/O

现在如何在 ReaderWriter 类中获取 arrayList 的引用?

我的应用程序相当大。我将展示与我的问题相关的部分内容:

主要:

    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();
}


}

最佳答案

您为 writeToFile 方法提供了一个 ArrayList 类型的参数。现在,您在 main 中创建 ReaderWriter 的实例并使用 writeToFile 方法。在 readFromFile 中,您必须添加一个同样来自 ArrayList 类型的 return 语句。现在您可以使用该方法来填充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();
}


}

主要:

     public static void main(String[] args) {
System.out.println("WELCOME TO OUR BANK!\n\n");

List<BankAccount> bankAccounts = new ArrayList<BankAccount>();
ReaderWriter rw = new ReaderWriter();
rw.writeToFile(bankAccounts);
List<BankAccount> bankAccounts2 = new ArrayList<BankAccount>();
bankAccounts2 = rw.readFromFile();


}

关于java - 如何从另一个类访问 arrayList (存储在主类中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com