对象流
序列化: 把对象保存到文件 或者网络上
ObjectOutputStream
步骤:
1.需要序列化的类 实现 Serializable接口 产生对象a
2.产生ObjectOutputStream(OutputStream out)对象oos
3. oos.writeObject(a)
反序列化:从文件或者网络上 读取数据 重构出一个对象
ObjectInputStream
步骤:
1.产生ObjectinputStream(inputStream in)对象ois
2.ois.readObject()
注意:
用ObjectOutputStream写到文件中的数据
必须通过ObjectInputStream读取
而且 读的顺序 必须和写的顺序一致
EOFException (end of file Exception)
如果读到了文件末尾,还继续读 会出现EOFException
如果想用writeObject()或者 readObject() 读写一个对象
那么该对象对应的类 一定要可以被序列化 实现Serializable接口
serialVersionUID表示类的不同版本号
serialVersionUID值 在读和写时保持一致
如果UID读和写不一致 报错:InvalidClassException
------------------------------------------------------
1.预习 反射
2.定义一个方法 输入一个文件名称 和 一个字符串 统计该字符串在文件中出现的次数
public static int count(String path,String s)
比如 a.txt:
abcdeabcfghh
trterabc
trterabc
ddfdfdfs
统计“abc”字符串出现的次数:4