Dan*_*osu 2 java file arraylist
这似乎很容易但我无法做到,尽管我在C#中做到了这一点.为了这个例子,我会保持简单.我有一个Person班级,有田野name和age.我有建设者和吸气者和制定者.
在我的主类中,我想从文件中读取数据并创建一个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);
}
Run Code Online (Sandbox Code Playgroud)
您需要Person在循环中创建一个新实例:
while(scn.hasNext()) {
String name = scn.next();
int age = scn.nextInt();
Person p = new Person(name, age);
lst.add(p); // simply add to the end of the list
}
Run Code Online (Sandbox Code Playgroud)