Сравнение содержимого файла кросс-платформенный - PullRequest
2 голосов
/ 14 апреля 2011

У меня есть файл, который был создан в Windows, поэтому он имеет возврат каретки "\ r \ n".

Файл используется в тесте, содержимое файла сравнивается с содержимым файла, созданного во время теста. Тест проходит в Windows, потому что сгенерированный файл имеет тот же возврат каретки.

Но тест не проходит на Unix / Mac.

Сбой, потому что сгенерированный файл имеет перевод строки, т.е. только "\ n".

Может кто-нибудь посоветовать, как с этим бороться?

Edit: Тест является тестом JUnit (Java).

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Вы можете попробовать следующее, чтобы избежать чтения построчно с

String text = FileUtils.readFileAsString(filename)
                       .replaceAll("(\r\n|\r|\n)", "\n");

Это заменяет все новые строки любого типа на "\ n"

1 голос
/ 14 апреля 2011
  • Вы можете сравнивать файлы, читая их построчно
  • Вы можете иметь два разных примера файлов для Unix / Windows
0 голосов
/ 04 мая 2011

Я закончил тем, что не использовал настоящий файл, и тест заставил создать файл на платформе во время выполнения, используя системное свойство для получения ограничителя строки платформы.

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