Java 对象流
发布日期:2021-05-07 03:00:33 浏览次数:20 分类:精选文章

本文共 2196 字,大约阅读时间需要 7 分钟。

import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.Date;/** * 对象流 * 序列化:对象输出流   对象->字节数组(字节流)->(文件,数据库,内存等)  ObjectOutputStream * 反序列化:对象输入流    (文件,数据库,内存等)->字节数组(字节流)-> 对象  ObjectInputStream * 先写出后读取 *  * 并非所有对象都可以序列化 *  * 必须实现serializable接口(空接口) * @author 佳哥 * */public class ObjectOITest {   public static void main(String[] args) throws IOException, ClassNotFoundException {   	//序列化		//字节数组输出流	ByteArrayOutputStream baos = new ByteArrayOutputStream();	//BufferedOutputStream(...)提高效率	ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(baos));	//加入对象	oos.writeObject("我叫佳哥,在测试对象流知识");//字符串也是对象String其中也实现了Serializable接口	oos.writeObject(new Date());//当前日期		Animals animals = new Animals("狗","白",2.0);//创建对象	oos.writeObject(animals);	oos.flush();				//反序列化	byte[] oosData = baos.toByteArray();	ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(oosData));	//读取一定要按上面写入的顺序读	Object str = ois.readObject();	Object date = ois.readObject();	Object dog = ois.readObject();			//还原数据	if(str instanceof String)	{   		String strObject = (String)str;		System.out.println(strObject);	}	if(date instanceof Date)	{   		Date dateObject = (Date)date;		System.out.println(dateObject);	}	if(dog instanceof Animals)	{   		Animals dogObject = (Animals)dog;		System.out.println(dogObject.getName()+"的颜色为:"+dogObject.getColor());	}			}}class Animals implements java.io.Serializable{   	private String name;	private String color;	private double age;//如果不想序列化 -->private transient double age;(透明)			//构造器	public Animals()	{   			}	public Animals(String name, String color, double age) {   		super();		this.name = name;		this.color = color;		this.age = age;	}		public String getName() {   		return name;	}	public void setName(String name) {   		this.name = name;	}	public String getColor() {   		return color;	}	public void setColor(String color) {   		this.color = color;	}	public double getAge() {   		return age;	}	public void setAge(double age) {   		this.age = age;	}}
上一篇:Java打印流
下一篇:Java对接流

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月25日 22时47分55秒