//這是我的代碼。它應該做什麼:逐行讀入.txt文件。取每一行(以逗號分隔其信息),分割它,獲取每個數據並創建一個ObjectName2對象實例。使用addData方法將ObjectName2添加到ObjectName1。問題:讀取第一行的罰款,將其添加到ObjectName1。讀同一行,遇到重複行,拋出異常。保持閱讀第一行。它不會移動到第二行。從我看到的代碼中,它應該可以正常工作。任何幫助將不勝感激。這段代碼全部在另一個類中,比如ObjectName3。Java:爲什麼我的BufferedReader不能讀取我的代碼的下一行?
編輯:它會發生什麼事是打印出來的控制檯,它發現一個重複的行,說lineName。然後再次輸出到控制檯:找到重複行,lineName。然後,再次,一次又一次。它一直持續下去。這是無限的。它永遠不會超過第一條線。只是不斷說「重複的行:lineName」。
public ObjectName1 load() {
ObjectName1 list = new ObjectName1();
BufferedReader fileIn;
String inputLine;
try {
fileIn = new BufferedReader(new FileReader(inputFileName));
inputLine = fileIn.readLine(); // read in first line
while (inputLine != null) {
String[] listOfData = inputLine.split(",");
String data1= listOfData[0];
String data2= listOfData[1];
String data3= listOfData[2];
int data4= Integer.parseInt(listOfData[3]);
int data5= Integer.parseInt(listOfData[4]);
ObjectName2 data= new ObjectName2(data1, data2, data3, data4, data5);
list.addData(data); // throws exception if duplicate data encountered
inputLine = fileIn.readLine(); // read in next line?
}
}
catch (Exception e) { // happens if we try to add duplicate data
System.out.println(e.getMessage());
}
finally {
boolean lineAfterException = true;;
while (inputLine != null) {
if (lineAfterException) {
inputLine = fileIn.readLine();
lineAfterException = false;
}
String[] listOfData = inputLine.split(",");
String data1 = listOfData [0];
String data2 = listOfData [1];
String data3 = listOfData [2];
int data4 = Integer.parseInt(listOfData [3]);
int data5 = Integer.parseInt(listOfData [4]);
ObjectName2 data= new ObjectName2 (data1, data2, data3, data4, data5);
list.addData(data)
inputLine = fileIn.readLine();
}
}
fileIn.close();
return list;
}
從ObjecName1類添加您的方法addData。 – Jimmy
不會。確定會發生什麼,它會向控制檯打印出它找到重複的行,例如:lineName。然後再次輸出到控制檯:找到重複行,lineName。然後,再次,一次又一次。它一直持續下去。這是無限的。它永遠不會超過第一條線。 – Wings