Java-java 字节过滤流。dataOut.writeChars(s1);写入txt文件为什么有空格?
DataOutputStream dataOut=new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("src\ex1\data.txt")));
String s1="summer";
dataOut.writeChars(s1);
在data.txt 打开后是 s u m m e r (字母之间有空格)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的程序输出后, data.txt里的内容是 unicode16 big-endian。
如果你是用 windows notepad 打开的话,看到的就是你说的字母里有空格的格式。 这个是 notepad 的问题, 它不能识别 unicode16. 如果你换 notepad++,就没有这个问题。我们项目里的C#打印出来的log文件都是unicode16,notepad显示都是你说的那样。
另外你可以使用 dataOut.writeUTF(s1); 文件里存 utf8,这个所有的编辑器都是支持的。
writeChars是写一个序列的UCS2编码字符串,要用readChar逐个读取
习惯上,大家都是用 fileWriter.write() 方法来写入文本
祝好,
斑驳敬上