Я использую библиотеку Java OpenCSV для чтения и записи нового файла. Требование состоит в том, чтобы написать символ @
в конце каждой строки, кроме последней. Мне удалось добавить @
после каждой строки, но последняя строка не должна содержать @
. Часть моей программы Java выглядит следующим образом:Как выполнить 2 В то время как циклы, содержащие одно и то же условие в Java?
// A part of my Java code
String[] endOfLine;
String[] nextLine;
int endLine = 0;
int lineNumber = 0;
// To get how many line are in the input file
while ((endOfLine = reader.readNext()) != null) {
endLine++;
}
//For 8 lines endLine is 8 here - which is ok
//Now I want to pass this in next while loop - which is also ok
while ((nextLine = reader.readNext()) != null) {
lineNumber++;
channel_temp = nextLine[5];
if (lineNumber == endLine) {
//Build a new string with all our required data
String newdata = channel_temp;
writer.writeNext(newdata);
System.out.println(newdata);
}
else {
String newdata2 = channel_temp + "@";
writer.writeNext(newdata2);
System.out.println(newdata2);
}
}
System.out.println("lineNumber: " + lineNumber);
System.out.println("endLine: " + endLine);
Программа показывает результат, как:
lineNumber: 0
endLine: 8
Итак, почему мой while loop
не обновляя LINENUMBER значение? В какой части я ошибаюсь?
Спасибо за ваш ответ. Я понял проблему. Повторное открытие файла не было бы хорошей идеей, но как повторно инициализировать читатель до второго цикла? –
Я не думаю, что есть способ повторно инициализировать читателя без повторного открытия файла. Я не хочу, чтобы снова открыть файл, наиболее эффективным и, вероятно, лучшим способом было бы слить до двух циклов. – Roan
@NazmulHossain Roan является правильным. –