我正在尋找一些有關我的代碼的幫助。我希望程序從.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