java中遍历对象流写入的文件
2014-12-10 20:46
190 查看
在用对象序列化写入文件后,特别是多对象的情况。比如说一个学生管理系统,有多个person,要想把所有的学生都数据都存储在一个文件中,可以有两种方法:
一、把所有学生的数据都存储在一个容器中,然后将这个容器一个对象写入文件,再用对象的反序列化从文件中读取出来就行了。(这里就不多说了)
二、把每个学生的数据(每个对象)一次存进文件中,这时文件就有多个对象存在了,要想把这些对象一个一个的读取出来,就需要用到这个文件。
比如说学生的数据为一个类:
我们写入时就是这样写入:
读取时用readObject()方法到文件末尾时不会反回-1之类的标识,这时遍历方法可以用EOFException来解决文件结束的问题。代码如下:
通过抛出的EOFException异常来判定文件是否到末尾了。这样就能实现对对象文件的遍历。
一、把所有学生的数据都存储在一个容器中,然后将这个容器一个对象写入文件,再用对象的反序列化从文件中读取出来就行了。(这里就不多说了)
二、把每个学生的数据(每个对象)一次存进文件中,这时文件就有多个对象存在了,要想把这些对象一个一个的读取出来,就需要用到这个文件。
比如说学生的数据为一个类:
public class stu{ private String name; private String sex; private int age; public stu(String name, String sex, int age){ this.name = name; this.sex = sex; this.age = age; } //get、set方法省略 }
我们写入时就是这样写入:
ObjectOutputStream obs = null; try{ obs = new ObjectOutputStream(new FileOutputStream("d://student.tmp")); stu student= null; student= new stu("2013081237", "张三", 25); obs.writeObject(student); obs.flush(); student= new stu("2013081238", "李四", 26); obs.writeObject(student); obs.flush(); student= new stu("2013081239", "王五", 27); obs.writeObject(student); obs.flush(); }catch(Exception e){ e.printStackTrace(); }finally{ try{ obs.close(); }catch(Exception e){ e.printStackTrace(); } }
读取时用readObject()方法到文件末尾时不会反回-1之类的标识,这时遍历方法可以用EOFException来解决文件结束的问题。代码如下:
try{ while(true){ obj = ois.readObject(); student= (stu)obj; System.out.println("姓名为:" + student.getName()); System.out.println("性别为:" + student.getSex()); System.out.println("年龄为:" + student.getAge()); } }catch(EOFException e){ e.printStackTrace(); System.out.println("结束"); }
通过抛出的EOFException异常来判定文件是否到末尾了。这样就能实现对对象文件的遍历。
相关文章推荐
- java 对象序列化写入文件
- JAVA 一个简单的文件写入代码(遍历文件夹获取所有文件、写入缓冲池、获取文件绝对路径、按后缀名过滤文件)
- java json总结 读取json文件或者把对象写入到json文件里面
- Java 对象直接写入文件 --序列化和反序列化
- java中将对象写入文件
- java 将对象写入到文件中
- 连续向文件中写入java对象后,读取报错
- java中将list、map对象写入文件
- Java学习随笔3:遍历文件夹及文件的读取和写入
- java将对象写入文件
- java 将对象写入文件进行保存和读取
- 【Java编程】写入、读取、遍历Properties文件
- Java 对象流的用法,将自定义类数组写入文件中
- java 将对象写入文件
- Java将对象写入文件读出_序列化与反序列化的实例
- java中将list、map对象写入文件
- Java:TreeSet定制排序后无法被对象输出流写入到文件
- 【Java编程】写入、读取、遍历配置文件 Properties类
- 多次创建object 写入对象文件中.java.io.StreamCorruptedException: invalid type code: AC解决办法
- Java基础之序列化对象——将对象写入到文件中(SerializeObjects)