【发布时间】:2014-08-02 18:12:04
【问题描述】:
这似乎很容易,但我无法做到,尽管我是在 C# 中做到的。
为了这个例子,我会保持简单。
我有一个Person 类,字段为name 和age。我有构造函数、getter 和 setter。
在我的主类中,我想从文件中读取数据并创建一个Person 对象,该对象将被添加到ArrayList。这是代码中似乎无法正常工作的部分。我使用了调试器并看到读数是正确的,我的文本文件的每一行都在 p 变量中的某个位置,但是当我打印它时,它只显示文件中的最后一个人 x 次(其中 x 是档案人数)。我使用了i 变量,因为我在网上查看并看到.add 有重载。第一次我只尝试了lst.add(p),第二次我使用i 变量来指定i 希望我的人在哪个位置。
File f = new File("fisier.txt");
try{
Scanner scn = new Scanner(f);
int i = 0;
while(scn.hasNext()){
p.nume = scn.next();
p.varsta = scn.nextInt();
lst.add(i,p);
i++;
}
scn.close();
} catch(FileNotFoundException e){
e.printStackTrace();
}
for(Persoana a : lst)
System.out.println(a.nume + " " + a.varsta);
}
【问题讨论】: