我需要替換各種文件(所有類型和換行符格式)中的鍵。 爲此,我試圖逐行復制文件並替換行中的鍵。這可以工作,但原始的換行符會丟失。如何通過保留原始換行符的行來複制文件行
這裏是我的代碼,很常見:
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
FileWriter writer = new FileWriter(tmpFile);
BufferedWriter out = new BufferedWriter(writer);
String line;
while ((line = reader.readLine() != null) {
String updatedLine = replaceKeys(line);
out.write(updatedLine);
out.newLine();
}
我需要逐行讀取文件中的行,以便能夠正確地更換密鑰(密鑰是由一些分隔符確定的時候,一定不要文件中被削減讀)。
問題是我的unix文件(.sh)在替換後有錯誤的換行符(代碼在windows上運行)。只有一行的文件會變成2行文件。
問題是,如何在逐行復制文件的同時保持原始文件行中斷,或者至少如何能夠確定文件末尾不在最後添加額外的行?謝謝你的幫助。
編輯:無用的DataInputStream刪除。
DataInputStream的用途是什麼?爲什麼不直接將'FileInputStream'傳遞給'InputStreamReader'? – Holger 2014-09-03 09:50:23
看得見,謝謝你的提示。這是一個錯誤的複製粘貼。沒有DataInputStream,它工作得很好。 – Kloe2378231 2014-09-03 10:09:09