//这是我的代码。它应该做什么:逐行读入.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