Как удалить последнюю тормозную строку из txt файла с JAVA? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть следующий текстовый файл:

123
156
356
<--- line break  (How delete this?)

Мне он нужен вот так:

123
156
356 <- let that be my last record.

1 Ответ

0 голосов
/ 08 мая 2020

Последнюю строчку можно удалить методом, описанным в посте здесь . Но, как вы, возможно, знаете, EOL (разрыв строки) составляет 2 символа \r\n в windows системах CRLF и 1 символ в macOS / linux systesm \n LF, поэтому вам нужно удалить последние 2 символа, если ваш файл windows отформатирован:

try {
  FileChannel open = FileChannel.open(Paths.get("file.tx"), StandardOpenOption.WRITE);
  open.truncate(open.size() - 2);   //the 2 characters I was describing above
} catch (IOException e) {
  System.out.println("An IO error occurred.");
  e.printStackTrace();
}

Имейте в виду, что каждый раз, когда вы запускаете этот код, последние 2 символа будут удаляться, поэтому было бы целесообразно реализовать убедитесь, что EOL - это последние символы вашего файла. Вы можете сделать это, прочитав последние символы:

FileChannel read = FileChannel.open(Paths.get("file.txt"), StandardOpenOption.READ);
ByteBuffer buffer = ByteBuffer.allocate(4);
read.read(buffer, read.size() - 2);
if(new String(buffer.array()).contains("\r\n")) {
  FileChannel write = FileChannel.open(Paths.get("file.txt"), StandardOpenOption.WRITE);
  write.truncate(write.size()-2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...