为什么java使用对象序列化到文件,打开之后是乱码,而且更换编码格式查看也不能正常显示呢

摘要:
由于乱码是正常的,序列化和反序列化基于二进制流,不受任何字符编码格式的限制。序列化是将学生对象的信息以二进制形式存储在文件obj中。在bat中,如果您打开的文本编辑器不是以特定字符编码格式输出的,那么它自然会乱码。存储的二进制文件只能通过反序列会话读取,然后显示在控制台上。如果不是乱码,您需要自己序列化(我不会)

因为乱码才是正常的,序列化和反序列话是基于二进制流的,这个二进制流不受制于任何字符编码格式

序列化是把Student对象的信息以二进制存储在文件obj.bat中,不是以特定的字符编码格式输出的

用文本编辑器打开自然是乱码。只有通过反序列话才能将存储的二进制读取出来,然后显示在控制台上。

要是想不是乱码,需要自己实现序列化(俺不会)

免责声明:文章转载自《为什么java使用对象序列化到文件,打开之后是乱码,而且更换编码格式查看也不能正常显示呢》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇配置ssh免密登录Qt Assistant介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#序列化和反序列化

序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。序列化和反序列化最主要的作用有:1、在进程下次启动时读取上次保存的对象的信息2、在不同的AppDomain或进程之间传递数据3、在分布式应用系统中传递数据 引用:http://www.cnbl...

php的serialize序列化和json性能测试

最近需要对大数组做存储,需要在serialize序列化和json之间做了选择。因此需要做了性能测试。 在php5.2之前对数组存储的时候,大都使用serialize系列化。php5.2之后,开始内置了 JSON 的支持。 在网上看到有些资料说:json_encode和json_decode比内置的serialize和unserialize函数要高效。耳闻不...

linux下的二进制文件的编辑和查看

linux下的二进制文件的编辑和查看 一、在Linux下查看二进制文件的软件: xxd (默认2进制) hexdump  (默认16进制,可转其他进制)  od (默认8进制,可转其他进制) 二、编辑: 1、biew 2、hexedit 3、vim Vim 来编辑二进制文件。Vim 本非为此而设计的,因而有若干局限。但你能读取一个文件,改动一个字符,...

redis序列化异常------------org.springframework.data.redis.serializer.SerializationException

异常信息; org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedExce...

MySQL的FLUSH句法

今天仔细看了下Flush语法,同时在工作中也经常使用Flush命令,在这儿汇总下。MySQL的FLUSH句法(清除或者重新加载内部缓存) FLUSH flush_option [,flush_option],如果你想要清除一些MySQL使用内部缓存,你应该使用FLUSH命令。为了执行FLUSH,你必须有reload权限。 flush_option 可以是下...

fastjson如何指定字段不序列化

fastjson是一款由阿里巴巴提供的性能出色的json序列化与反序列化库,而且使用很方便,我们可以使用JSON.toJSONString(object)将一个对象序列化为json格式,但是如果我们不想把一个类的所有成员都序列化怎么办呢。 解决这个问题有两种方式: 方式一、给不想被序列化的属性增加transient属性---java特性 方式二、给不想被...