BufferedWriter.newLine () за исключением последней строки - PullRequest
0 голосов
/ 29 октября 2018

Я рисую пробел на этом. Проблема, с которой я сталкиваюсь, заключается в том, что я не хочу, чтобы newLine() создавался после записи последней строки в новый файл. Как мне это сделать?

while (((aLine = reader.readLine()) != null)) {
                writer.write(aLine);
                writer.newLine();
            }

Ответы [ 3 ]

0 голосов
/ 29 октября 2018
boolean flag = false;
while (((aLine = reader.readLine()) != null)) {
    if(flag)
        writer.newLine();
    writer.write(aLine);
    flag = true;
}
0 голосов
/ 29 октября 2018

В качестве незначительного изменения существующих ответов (которые предлагают сначала написать новую строку):

String separator = "";
while (((aLine = reader.readLine()) != null)) {
  writer.write(separator);
  writer.write(aLine);
  separator = System.lineSeparator();
}
0 голосов
/ 29 октября 2018

Поскольку вы не можете видеть будущее, вы должны полагаться на прошлое: вместо испускания новой строки после последней строки, испускайте ее перед всеми строками, кроме первой:

bool first=true;
while (((aLine = reader.readLine()) != null)) {
    if(!first)writer.newLine();
    else first=false;
    writer.write(aLine);
}
...