Java не распознает символ новой строки \ n в файле журнала на одном компьютере - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть этот код для записи журнала результатов в текстовый файл

aWriter.write(date + ";" + outcome + ";" + var2 + ";" + var + ";" + time + ";" + code + "\n");

Когда я открываю файл log.txt на моем компьютере, все выглядит так, как должно быть, например:

> 2018-12-17;OK;456;456;14:0:9;123456
> 2018-12-17;OK;487;487;14:0:13L123456
> 2018-12-17;OK;456987;456987;14:0:20;123456
> 2018-12-18;NOK;3;123;8:51:12;123456

Но когда я открываю этот файл журнала на другом компьютере, на котором запущена программа, я получаю следующий результат:

2018-12-17;OK;456;456;14:0:9;1234562018-12-17;OK;487;487;14:0:13L1234562018-12-17;OK;456987;456987;14:0:20;1234562018-12-18;NOK;3;123;8:51:12;123456

В чем причина этого?Это мой код или просто некоторые настройки Windows по умолчанию?

1 Ответ

0 голосов
/ 18 декабря 2018

Не в каждой системе используются одинаковые окончания строк (и некоторые текстовые редакторы ожидают \r\n вместо \n, поскольку это разделитель строк для окон в зависимости от платформы), вы можете использовать %n, используячто-то вроде Formatter:

'n' разделителя строк для конкретной платформы, возвращаемого System.getProperty ("line.separator").

Как этоиспользуя String#format:

aWriter.write(
        String.format("%s%n", String.join(";", date, outcome, var2, var, time, code)));
//                       ^ %s prints the string, %n the line ending

Или больше, как ваш исходный код (без %n):

aWriter.write(String.join(";", date, outcome, var2, var, time, code) 
        + System.getProperty("line.separator"));

В качестве альтернативы

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

Я провел небольшой тест, если вы хотите продолжать использовать Notepad, используйте первое решение, он будет правильно отображать файлыесли вы используете правильные окончания строк.В противном случае Notepad++ сможет прочитать ваш файл как есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...