乱码 io 乱码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用的是DataOutputStream字节输出流写到Data.txt文件里的,写进去的不是字符。用OutputStreamWriter字符输入应该是可以的。 DataOutputStream输出的不是字符流,生成的不是文本文件,怎么可以按文本文件查看用DataInputStream读当然没有问题了 Thinking in JAVA里面看来的吧DataOutputStream是面向字节而不是面向字符的,如何用正常的文本阅读器读?writeFloat,writeDouble是用IEEE754浮点数标准编码的writeUTF是用Modified UTF-8编码的 DataOutputStream输出的是字节流,你仔细去网上搜下关于这个类的使用和介绍。也可以看下API关于这个类的介绍。这个流中的每一个方法写入文件的字节都是不相同的,比如writeChars(char c)是将这个字符的两个字节都写入文件中,比如writeChars('a'),a对应的是十进制是97,对于的16进制是61,也就是说写入的是 00 61,如果是writeBytes写入呢?则是将每个字符的低字节内容写入目标设备中,也就是 61 ,因为一个字符由两个字节组成,前面是高,后面是低。而为什么控制台输出又是正确的呢?因为你又使用了同样的readxxx()方法读了回来,相当于,我加密了一段密文情书发给女神,又告诉了女神解密的方法,女神就能读懂我的情书了,然后果断拒绝了我。但是我如果没告诉她解密的方法呢?她心里会想,屌丝,真特么无聊。然后和高富帅去啪啪啪。这样,你使用txt一个文本文件工具打开,没法按照工具认为的编码方式去读取数据,所以就会像你所说的乱码。如果不懂,可以继续问我。 那FileOutputStream也是输出的字节流,为什么用的时候控制台与文件都不会乱码呢? 应该是 DataOutputStream 会将数据字节 进行转换 也许乱码 是因为内容成为了utf-16而好比 writeLong(long)FileOutputStream write always byte 楼主你还是看看 API对这两个类的 解释。。 Java中子类不能继承父类的构造方法应如何理解 正则表达式 一个字符串操作问题 如何用户java代码实现修改Linux的系统时间 初学JAVA,问几道弱智的问题~~~~在线等~~ sun API 查询问题 IDEA的UI 控件太少了 很多都没有,怎么办啊。。从哪里加? 下了个 jdk1.5, 哪里可以找到它的文档或资料啊? 关于日期的一个小问题,求解答 java中,在编写方法时一个从未见过的定义方式 Java中IO流问题--System.in 这个java程序运行后结果怎么不正确啊?
用DataInputStream读当然没有问题了
DataOutputStream是面向字节而不是面向字符的,如何用正常的文本阅读器读?
writeFloat,writeDouble是用IEEE754浮点数标准编码的
writeUTF是用Modified UTF-8编码的
这个流中的每一个方法写入文件的字节都是不相同的,比如writeChars(char c)是将这个字符的两个字节都写入文件中,比如writeChars('a'),a对应的是十进制是97,对于的16进制是61,也就是说写入的是 00 61,如果是writeBytes写入呢?则是将每个字符的低字节内容写入目标设备中,也就是 61 ,因为一个字符由两个字节组成,前面是高,后面是低。而为什么控制台输出又是正确的呢?因为你又使用了同样的readxxx()方法读了回来,相当于,我加密了一段密文情书发给女神,又告诉了女神解密的方法,女神就能读懂我的情书了,然后果断拒绝了我。但是我如果没告诉她解密的方法呢?她心里会想,屌丝,真特么无聊。然后和高富帅去啪啪啪。这样,你使用txt一个文本文件工具打开,没法按照工具认为的编码方式去读取数据,所以就会像你所说的乱码。如果不懂,可以继续问我。
也许乱码 是因为内容成为了utf-16
而好比 writeLong(long)
FileOutputStream write always byte
楼主你还是看看 API对这两个类的 解释。。