2012-04-04 3 views
5

저는 다중 플랫폼 환경 (Windows + Linux)에서 Java로 작업하고 있습니다. 그러나 우리가 제작 한 텍스트 파일은 LF를 EOL 시퀀스로 사용해야합니다.Java에서 기본 행 결말 설정

프로그램을 실행중인 플랫폼에 관계없이 Java가이 EOL 시퀀스를 강제로 사용할 수있는 방법이 있습니까? 전체 프로그램을 변경하지 않아도됩니다. 즉, System.out.println에 대한 모든 호출이 그대로 유지되어야합니다. 함수의 끝에있는 * ln 만 항상 "0x0A"를 출력하고 절대로 " 0x0D 0x0A "입니다.

  1. 재정의 플랫폼에 의존하는 디폴트의 EOL 순서
  2. 자바을 난 믿는다 중 하나가 가능한 경우

    나는 그 일을 두 가지 다른 방법을 생각할 수있는,하지만 난 몰라 도스 커맨드 라인에서 프로그램을 실행할 때도 리눅스를 실행합니다.

이 중 어떤 것이 가능합니까? 아니면 뭔가 다른 걸까요?

+1

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

답변

2
당신은

또는, 어쩌면 당신이 println 및 인쇄 개행 문자 print insetad을 사용할 수 있습니다 (또한 JVM을 명령 줄 매개 변수를 통해 서 달성 할 수있다) System.setProperty("line.separator", "something you need"); 같이 해당 시스템 속성을 설정하려고 할 수 있습니다

("\r", "\ n"또는 필요한 경우).

1

thisthis을 살펴보십시오. 이들을 조합하면 System.setProperty("line.separator", "\n");이 문제를 해결할 수 있습니다.

링크를 추가 한 이유는 테스트하지 않았기 때문에 직접 확인할 수 있습니다.

+2

이것은 도움이되지 않습니다. 속성은 변경하지만 동작은 변경하지 않습니다. 단지 재산 변경에 반응하지 않습니다. 실험적으로 확인되었습니다. java.class.path와 같은 다른 시스템 특성과 동일합니다. 명령 행은 유일한 옵션 (또는 일부 코드 런타임 수정)입니다. – Espinosa