我使用Java SE 6有沒有一個標準的API來檢查Java中的行分隔符?
我的程序讀取多種類型的文件,從DOS到UNIX和ASCII的爲Unicode,我必須確保輸出文件的行分隔符匹配輸入文件。
我這樣做的方式是使用BufferedReader的read()函數讀取示例行,以搜索第一行分隔符並將該行分隔符保存爲String。這種方式可以在稍後需要新線時使用。
我檢查掃描儀類,發現可能的行分隔符可以包括以下內容:
\r\n
\r
\n
\u2028
\u2029
\u0085
是否有一個庫函數來檢查這些字符?或者甚至更好,是否已有庫函數來檢查輸入的行分隔符是什麼樣子?
有沒有其他解決方法呢?
編輯: 如果可能,我想使用Java的標準API而不是第三方庫,但所有的建議是最受歡迎的。編號: 只是爲了澄清。
1)輸入文件不依賴於程序運行的位置。例如,如果我在Dos中運行這個程序,我仍然可以得到一個Unix輸入文件。
2)我的目標不是讀取用分隔符分隔的每一行 - 這很簡單。我真正需要的是使用與輸入文件相同的行分隔符編寫輸出文件。例如,如果我在Dos中運行該程序,並且得到一個Unix輸入文件,我希望能夠使用Unix行分隔符寫入我的輸出文件。這就是爲什麼我問是否有一個標準API根據輸入文件檢測行分隔符,而不是運行OS。
謝謝。
「可能看起來有點麻煩」 - 例如,它絕對不是一個邊緣情況 - java unix將大型機響應的日誌文件或不同來源的複製粘貼文本。我永遠不會假定文件只有一種類型的行分隔符。 – 2014-12-04 00:38:25