2012-04-04 20 views
5

Pracuję z Javą w środowisku wieloplatformowym (Windows + Linux). Wszystkie pliki tekstowe, które tworzymy, powinny jednak używać LF jako sekwencji EOL.Ustaw domyślne zakończenie linii na Java

Czy jest jakiś sposób zmusić Javę do korzystania z tej sekwencji EOL, niezależnie od platformy, na której uruchomiłem program? Nie chciałbym zmieniać całego programu, tzn. Wszystkie wywołania System.out.println i podobne powinny być zachowywane, tak jak, tylko * ln na końcu funkcji powinno zawsze wyprowadzać "0x0A", a nigdy " 0x0D 0x0A ".

mogłem myśleć o dwóch różnych sposobów działania, ale nie wiem, jeśli jeden z nich jest możliwa:

  1. przesłanianie kolejność domyślna EOL zależne od platformy
  2. zrobić Java uwierzyć, że jestem z Linuksem, nawet gdy uruchamiam mój program w linii poleceń DOS:

Czy to jest możliwe? A może coś jeszcze?

+1

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

Odpowiedz

2

Można spróbować ustawić odpowiednią właściwość systemu jak System.setProperty("line.separator", "something you need"); (może być również osiągnięty throug parametrów wiersza polecenia JVM)

Albo, być może, można użyć print insetad z println i drukowania znaków linii łamania ("\r", "\ n" lub ich kombinacja) tam, gdzie jest to potrzebne.

1

Spójrz na this i this. Jeśli umieścisz je razem, przekonasz się, że System.setProperty("line.separator", "\n"); może rozwiązać Twój problem.

Nie testowałem jednak, dlatego dodałem linki, abyś mógł sam sprawdzić.

+2

To nie pomaga. Zmieniasz właściwość, ale nie zachowanie. Po prostu nie reaguje na zmianę własności. Eksperymentalnie zweryfikowany. To samo dotyczy innych właściwości systemu, takich jak java.class.path. Wiersz poleceń jest twoją jedyną opcją (lub modyfikacją jakiegoś kodu). – Espinosa

Powiązane problemy