标签:对象 解决方案 ArrayList Person lnvalidClassException 集合 new 序列化
可以手动给类添加一个序列号格式,在SerialiVersionUID接口中规定:
可序列化类可以通过声明名为”serialVersionUID”的字段(该字段必须是静态(static)、最终(final)的long型字段)显示声明其自己的serialVersionUID:
Static final long serialVersionUID=421;(常量不能变)
当JVM反序列化对象时,能找到class文件,但是class文件序列化对象之后发生了修改,那么反序列化操作也会失败,抛出一个InvalidClassException异常
原理图:
代码实现:
public static void main(String[] args) throws IOException { ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("person.txt")); objectOutputStream.writeObject(new Person("小美女",18)); objectOutputStream.close(); } //反序列化 public static void main(String[] args) throws IOException, ClassNotFoundException { ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("person.txt")); Object o = objectInputStream.readObject(); objectInputStream.close(); System.out.println(o); Person p = (Person)o; System.out.println(p.getName()+p.getAge());
案例_序列化集合
练习:序列化集合
当我们想在文件中保存多个对象的时候可以把多个对象存储到一个集合中
对集合进序列化和反序列化
分析:
1-定义一个存储Person对象的ArrayList集合
2.往ArrayList集合中存储Person对象
3.创建一个序列化流objectoutputStream对象
4.使用objectoutputstream对象中的方法writeobject,对集合进行序列化
5.创建—个反序列化objectInputStream对象
6.使用objectInputstream对象中的方法readobject读取文件中保存的集合
7.把object类型的集合转换为ArrayList类型
8.遍历ArrayList集合
9.释放资源
代码:
标签:对象,解决方案,ArrayList,Person,lnvalidClassException,集合,new,序列化 来源: https://www.cnblogs.com/12-12-12/p/16490255.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。