我想使用 FileOutputStream
写入新行,但我尝试了以下方法,但都没有成功:
encfileout.write('\n');
encfileout.write("\n".getbytes());
encfileout.write(System.getProperty("line.separator").getBytes());
我想使用 FileOutputStream
写入新行,但我尝试了以下方法,但都没有成功:
encfileout.write('\n');
encfileout.write("\n".getbytes());
encfileout.write(System.getProperty("line.separator").getBytes());
这应该可以工作。可能是您忘记调用encfileout.flush()
。
但是这不是编写文本的首选方式。您应该使用PrintWriter
包装您的输出流,并享受它的println()
方法:
PrintWriter writer = new PrintWriter(new OutputStreamWriter(encfileout, charset));
或者你可以一开始就使用FileWriter
而不是FileOutputStream
:
FileWriter fw = new FileWriter("myfile");
PrintWriter writer = new PrintWriter(fw);
现在只需调用
writer.println();
不要忘记在完成工作时调用 flush()
和 close()
。
可能是查看器出了问题...尝试在EditPlus或Notepad++中打开文件。 Windows记事本可能无法识别其他操作系统的换行符。您现在在哪个程序中查看该文件?
要添加换行,请使用
fileOutputStream.write(10);
这里的十进制值 10
表示 ASCII 编码中的换行符。
String lineSeparator = System.getProperty("line.separator");
<br>
fos.write(lineSeparator.getBytes());