2012-04-04 2 views
5

Я работаю с Java в многоплатформенной среде (Windows + Linux). Однако любые текстовые файлы, которые мы производим, должны использовать LF в качестве последовательности EOL.Установить строку по умолчанию, заканчивающуюся на Java

Есть ли способ заставить Java использовать эту последовательность EOL, независимо от платформы, на которой я запускаю программу? Я бы не хотел менять всю программу, т. Е. Все вызовы System.out.println и тому подобное должны храниться как есть, только * ln в конце функции всегда должен выводить «0x0A» и никогда не " 0x0D 0x0A ".

я мог думать о двух различных способов сделать это, но я не знаю, если ни один возможен:

  1. переопределение платформы в зависимости от последовательности EOL по умолчанию
  2. сделать Java считаю, что я под управлением Linux, даже когда я запускаю свою программу в командной строке DOS

Возможно ли это? Или что-то еще возможно?

+1

http://stackoverflow.com/questions/6128174/how-do-i-force-windows-line-endings-in-java-app – kevingallagher

ответ

2

Вы можете попробовать установить соответствующее системное свойство, как System.setProperty("line.separator", "something you need"); (Это также может быть достигнуто через в параметры командной строки для виртуальной машины Java)

Или, может быть, вы можете использовать print insetad из println и печати линий непосильных символов ("\r", "\ n" или их комбинация), где вам это нужно.

1

Посмотрите на this и this. Если вы поместите их вместе, вы обнаружите, что System.setProperty("line.separator", "\n"); может решить вашу проблему.

Не протестировали его, поэтому я добавил ссылки, поэтому вы можете проверить сами.

+2

Это не поможет. Вы изменяете свойство, но не поведение. Он просто не реагирует на изменение собственности. Экспериментально проверена. То же самое с другими системными свойствами, такими как java.class.path. Командная строка - это ваш единственный вариант (или некоторая модификация времени выполнения кода). – Espinosa

 Смежные вопросы

  • Нет связанных вопросов^_^