我正在寻找一些有关我的代码的帮助。我希望程序从.txt文件中读取并创建一个Animal对象,并根据文件中的数据将其插入到Animal对象的ArrayList中,并假定文件中的数据格式正确。Java - 从文本文件读取数据并将数据保存到对象ArrayList中的问题
我创建了一个计数器来跟踪行号。因为我知道.txt文件中的数据是如何格式化的,所以我可以预测一个Animal对象开始的地方,另一个结束。
我一直得到的问题是,ArrayList中的动物对象与文本文件中最后一个动物具有相同的字段。任何和所有的帮助,不胜感激。
BufferedReader userInputFile = null;
int ctr = 1;
try {
userInputFile = new BufferedReader(new FileReader(userDocFilePath));
Animal newFileAnimal = new Animal();
while((s = userInputFile.readLine()) != null) {
if (ctr == 1){
newFileAnimal.setName(s);
ctr++;
} else if (ctr == 2) {
newFileAnimal.setSpineStatus(s);
ctr++;
} else if (ctr == 3) {
newFileAnimal.setFurStatus(s);
ctr++;
} else if (ctr == 4) {
newFileAnimal.setSwimStatus(s);
System.out.printf("Animal name: %s\n\tSpine status: %s\n\t"
+ "Fur status: %s\n\tSwim status: %s\n", Animal.getName(),
+ newFileAnimal.getSpineStatus(),
+ newFileAnimal.getFurStatus(),
+ newFileAnimal.getSwimStatus());
array.add(newFileAnimal);
ctr = 1;
}
}
文本文件看起来像这样:
Rabbit
true
true
true
Duck
true
false
true
你的问题是,你不更新本地变量“newFileAnimal”,你创建一个动物的只有一个实例,并随时更新这一块,导致所有你配售对象进入数组是相同的动物和数据与最后放置的信息。 – L33T