java--Object流以及涉及字符、字节编码等问题
2017-04-25 本文已影响6人
exmexm
字符编码的问,可以再斟酌斟酌,参考:
http://www.regexlab.com/zh/encoding.htm
要使用Object流必须要用标识接口(implements Serializable),
从而让编译器知道该类是可以序列化的。
其中类里面的成员变量用关键字transient修饰的话,
表示该成员变量是透明的,不被Object输入流写入到文件中。
参考:https://zhidao.baidu.com/question/1047673951462430659.html
用Object流时,出现了这个错误java.io.StreamCorruptedException,
原因是:
在一个文件都有一个文件的头部和文件体。由于对多次使用FileOutputStream(文件名,true)构建的ObjectOutputStream对象向同一个文件写数据,在每次些数据的时候他都会向这个文件末尾先写入header在写入你要写的对象数据,在读取的时候遇到这个在文件体中的header就会报错。导致读出时,出现streamcorrput异常。
解决方法:
解决办法:所以这里要判断是不是第一次写文件,若是则写入头部,否则不写入