Java对象序列化乱码以及字符集的小问题

今天在学习Java I/O的时候遇到以下两个问题

问题:
Java在使用ObjectOutputStream将对象写入txt文件,打开文件是乱码
解决:
并非是乱码。ObjectOutputStream.writeObject()的作用是把一个实例的对象以文件的形式保存到磁盘上,这个过程叫对象的持久化。而这个文件是以二进制的形式编写的,当用文本编辑器打开,这些二进制代码映射到某个字符集后,显示出来的东西就成了乱码。即使是输出一个String对象,也是以该对象的二进制编码的形式输出,而不是输出String对象的内容。

问题:
java.nio.charset.MalformedInputException: Input length = 1
	at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
	at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:816)
	at FileChannelTest.main(FileChannelTest.java:30)
解决:
将文件中的以下代码的字符集改为UTF-8即可
Charset charSet = Charset.forName("GBK");

  
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值