我可以从另一个类访问arrayList(存储在主类中)吗?

时间:2015-04-24 14:07:25

标签: java file-io arraylist fileinputstream fileoutputstream

我的目标是从文件中读取和写入对象(使用文件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();
    }


}

2 个答案:

答案 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