码迷,mamicode.com
首页 > 其他好文 > 详细

ObjectInputStream和ObejctOutputStream

时间:2018-10-27 16:10:15      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:str   col   hashmap   string   asn   cti   des   ado   ide   

ObjectInputStream和ObejctOutputStream的作用是:对基本数据和对象进行序列化支持.

ObjectOutputStream提供对"基本数据对象"的持久存储.ObjectInputStream提供对"基本数据对象"的读取.

public class ObjectStreamTest {
    private static final String PATH = "D:\\baiduyun\\filetest\\rrr.txt";

    public static void main(String[] args) throws Exception {
    testWrite();
    testRead();
    }

    public static void testWrite() throws FileNotFoundException, IOException {
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(new File(PATH)));
    out.writeBoolean(true);
    out.writeByte((byte) 65);
    out.writeChar(‘a‘);
    out.writeInt(20131015);
    out.writeFloat(3.14F);
    out.writeDouble(1.414D);
    // 写入HashMap对象
    HashMap map = new HashMap();
    map.put("one", "red");
    map.put("two", "green");
    map.put("three", "blue");
    out.writeObject(map);
    // 写入自定义的Box对象,Box实现了Serializable接口
    Box box = new Box("desk", 80, 48);
    out.writeObject(box);

    out.close();

    }

    public static void testRead() throws FileNotFoundException, IOException, ClassNotFoundException {
    ObjectInputStream in = new ObjectInputStream(new FileInputStream(PATH));
    System.out.printf("boolean:%b\n", in.readBoolean());
    System.out.printf("byte:%d\n", (in.readByte() & 0xff));
    System.out.printf("char:%c\n", in.readChar());
    System.out.printf("int:%d\n", in.readInt());
    System.out.printf("float:%f\n", in.readFloat());
    System.out.printf("double:%f\n", in.readDouble());
    // 读取HashMap对象
    HashMap map = (HashMap) in.readObject();
    Iterator iter = map.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry entry = (Map.Entry) iter.next();
        System.out.printf("%-6s -- %s\n", entry.getKey(), entry.getValue());
    }
    // 读取Box对象,Box实现了Serializable接口
    Box box = (Box) in.readObject();
    System.out.println("box: " + box);

    in.close();

    }

    static class Box implements Serializable {
    private int width;
    private int height;
    private String name;

    public Box(String name, int width, int height) {
        this.name = name;
        this.width = width;
        this.height = height;
    }

    @Override
    public String toString() {
        return "[" + name + ": (" + width + ", " + height + ") ]";
    }
    }
}

 

ObjectInputStream和ObejctOutputStream

标签:str   col   hashmap   string   asn   cti   des   ado   ide   

原文地址:https://www.cnblogs.com/zhangj-ymm/p/9861360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!