当前位置: 代码迷 >> J2SE >> 对象序列化与反序列化中一些有关问题
  详细解决方案

对象序列化与反序列化中一些有关问题

热度:8855   发布时间:2013-02-25 00:00:00.0
对象序列化与反序列化中一些问题
如果我有一个添加用户的功能,需要序列化到硬盘,然后我用ObjectOutputStream中writeObject()将用户类写进一个专门的文件中,但再次调用会不会覆盖之前写的?会的话应该怎么做?还有ObjectInputStream中的readObject()读取完一个对象后会不会继续往后读取其他对象的?

------解决方案--------------------------------------------------------
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("",true));

在这里加个true表示的是在文件末尾追加内容


ObjectInputStream中的readObject()读取完一个对象后会继续往后读取其他对象的

Java code
public class 对象流 {    public static void main(String[] args) {        try {                        /*ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("c:/a",true));            User u1 = new User("zs");            User u2 = new User("ls");            os.writeObject(u1);            os.writeObject(u2);            os.flush();            os.close();*/            ObjectInputStream is = new ObjectInputStream(new FileInputStream("c:/a"));            Object obj1 = is.readObject();            Object obj2 = is.readObject();            Object obj3 = is.readObject();            System.out.println(obj1);            System.out.println(obj2);            System.out.println(obj3);        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } catch (ClassNotFoundException e) {            e.printStackTrace();        }            }}class User implements Serializable{    String name;    User(String name){        this.name = name;    }    @Override    public String toString() {        return "User[name = "+this.name;    }}
  相关解决方案