[英]Extra New Lines When Writing Java File on Linux vs Windows
我有一個使用Java編寫的.txt文件,該文件具有非常特定的換行安排。 當我在Windows上編寫文件時,會強制執行這種安排,但是當我在Ubuntu上運行相同的代碼時,每個應該有一個地方的地方都有兩個新行。 有誰知道這可能是什么原因? 這是我用來編寫的代碼:
List<String>toBeWrittenList = new ArrayList<String>();
for(int x=0; x < finalList.size(); x++){
toBeWrittenList.add("\n");
toBeWrittenList.add("==level " + (x+1) +"==");
for(int y=0; y < finalList.get(x).size();y++){
if(finalList.get(x).get(y).equals("N"))
toBeWrittenList.add(y+1 + ". null");
else
toBeWrittenList.add(y+1 + ". " + finalList.get(x).get(y));
}
}
try {
writeSmallTextFile(toBeWrittenList, FILE_NAME3);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
static void writeSmallTextFile(List<String> aLines, String aFileName) throws IOException {
Path path = Paths.get(aFileName);
Files.write(path, aLines, ENCODING);
}
我通常使用PrintWriter方法println創建一個文本文件。 println將檢查您的操作系統並選擇正確的進紙線(\\ n或\\ n \\ r)。
該問題可能存在於Files.write中。 你是自己寫課嗎? 還是您正在使用第三方圖書館?
Windows使用一對“ \\ r \\ n”字符來區分換行符,而Linux則將“ \\ n”視為換行符,並且也將其視為“ \\ r”。 因此,“ \\ r \\ n”看起來更像Linux中的兩個換行符。
將文本文件復制到Linux框中時,請通過dos2unix
運行文本文件,以將“ \\ r \\ n”轉換為“ \\ n”。 將文本文件復制回Windows時,請通過unix2dos
運行文本文件,以將“ \\ n”轉換回“ \\ r \\ n”對。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.