// Вот мой код. Что он должен делать: читайте в .txt-файле, строко за строкой. Возьмите каждую строку (которая имеет свою информацию, разделенную запятыми), разделите ее, возьмите каждую информацию и создайте экземпляр объекта ObjectName2. Используйте метод addData для добавления ObjectName2 в ObjectName1. Проблема: читает первую строчку, добавляет ее в ObjectName1. Считывает ту же строку, встречает дублируемую строку, исключает исключение. Продолжает чтение первой строки. Он никогда не войдет во вторую строчку. Из того, что я вижу с моим кодом, он должен работать нормально. Любая помощь будет принята с благодарностью. Этот код находится в другом классе, например ObjectName3.Java: Почему мой BufferedReader не читает следующую строку моего кода?
РЕДАКТИРОВАТЬ: что происходит, он выводит на консоль, что он нашел дублируемую строку, например, имя строки. Затем он снова выводится на консоль: Дублирует найденную строку, имя_линии. И снова, и снова, и снова. Это продолжается вечно. Это бесконечно. Он никогда не проходит мимо первой линии. Просто продолжайте говорить «Дублировать строку: имя_линии».
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;
}
добавить свой метод addData из класса ObjecName1. – Jimmy
Нет. Итак, что происходит, он выводит на консоль, что нашел дубликат строки, например: lineName. Затем он снова выводится на консоль: Дублирует найденную строку, имя_линии. И снова, и снова, и снова. Это продолжается вечно. Это бесконечно. Он никогда не проходит мимо первой линии. – Wings