我需要替换各种文件(所有类型和换行符格式)中的键。 为此,我试图逐行复制文件并替换行中的键。这可以工作,但原始的换行符会丢失。如何通过保留原始换行符的行来复制文件行
这里是我的代码,很常见:
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