你好,游客 登录 注册 搜索
背景:
阅读新闻

ObjectOutputStream和ObjectInputStream的简单使用

[日期:2017-08-08] 来源:Linux社区  作者:benxi [字体: ]

使用ObjectOutputStream往文本写内容时,首先在文本里面标记开始,然后是内容,最后加上结束标示。如果想再次往文本里面添加内容的话,就要加在开始标示之后和结束标示之前,不然会读取不到写入的内容。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;


public class ObjectBuffer {
    public static void main(String[] args) throws Exception {
        ObjectOutputStream oos = new ObjectOutputStream(new
                FileOutputStream("src/TXT/Z.txt",false));//工程里面的路径
        oos.writeObject(new User("java",16));
        oos.writeObject(new User("C++",18));
        oos.writeObject(new User("c语言",22));
        oos.writeObject(null);  //最后添加一个空对象,作为后面读取内容的判断
        oos.flush();
        oos.close();
        //第一次使用ObjectOutputStream往文本写内容时,就会自动在文本内容最后打上结束标示。
        //当再次使用ObjectOutputStream往里面写入内容时,内容加在上次内容的后面,当使用ObjectInputStream读取内容时,
        //因为第一次写入内容时,在后面加上了结束标示,将会读取不到第二次写入的内容。

        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("src/TXT/Z.txt"));
        User u;
        while((u = (User) ois.readObject()) != null){
            System.out.println(u);
        }
        ois.close();
    }
}
class User implements Serializable{
    static int n = 0;
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public User(String name, int age) {
        super();
        n++;
        this.name = name;
        this.age = age;
    }
    public User() {
        super();
    }
    @Override
    public String toString() {
        n--;
        return "User [name=" + name + ", age=" + age + "]";
    }
}

输出结果:
User [name=Java, age=16]
User [name=C++, age=18]
User [name=C语言, age=22]

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-08/146111.htm

linux
相关资讯       ObjectOutputStream  ObjectInputStream 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款