2012-04-04 37 views
5

我與Java在多平臺環境(Windows + Linux)的工作。但是,無論我們生成哪種文本文件,都應該使用LF作爲它們的EOL序列。結束設置默認線在Java中

有沒有一種方法可以強制Java使用此EOL序列,而不管我正在運行程序的平臺上?我不想改變整個程序,即所有對System.out.println和類似的調用都應該保持原樣,只有函數末尾的* ln應該總是輸出「0x0A」,而不是「 0x0D 0x0A「。

我能想到的這樣做的兩種不同的方式,但我不知道,如果任何一個可能:

  1. 覆蓋依賴於平臺的默認EOL序列
  2. 使Java相信我甚至當我在DOS命令行上運行我的程序時運行Linux

這是可能的嗎?或者別的什麼?

+1

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

回答

2

你可以嘗試設置像System.setProperty("line.separator", "something you need");相應的系統屬性

或者,也許,你可以使用print insetad的println和打印的換行字符(也可以通過量的命令行參數來JVM實現)( "\r",「\ n」或它們的組合)在你需要它的地方。

1

看看thisthis。如果你把這些放在一起,你會發現System.setProperty("line.separator", "\n");可能會解決你的問題。

沒有測試過,雖然,這就是爲什麼我添加了鏈接,這樣你就可以檢查自己。

+2

這沒有幫助。你改變了財產,但不是行爲。它只是對物業變化沒有反應。通過實驗驗證。與其他系統屬性相同,如java.class.path。命令行是你唯一的選擇(或者一些代碼運行時修改)。 – Espinosa 2013-06-27 13:18:37