• javaIO中的对象流ObjectInputStream与ObjectOutputStream


    ObjectInputStream与ObjectOutputStream可以将对象写在硬盘或者从硬盘中读取出来,当然也可以在网络中传输的时候。但是操作的对象必须实现序列化。

    什么是对象的序列化?对象序列化的目标就是将对象保存在磁盘上,或者允许在网络中传输对象。

    api中描述如下

    api中的描述如下

    一个实现了序列化的对象
    
    package cn.bean.demo.io.object;
    
    import java.io.Serializable;
    //如果这个对象拥有一个实例属性【并且这个实例的对象是自定义对象,他必须也要实现序列化,否则person不会成功写入到磁盘中,可以自行验证】
    public class Person implements Serializable{
    
    	/**
    	 * 对象序列化版本号
    	 */
    	private static final long serialVersionUID = 8761043201815925119L;
    	
    	private String name;
    
    	private String sex;
    	
    	private String age;
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getSex() {
    		return sex;
    	}
    
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    
    	public String getAge() {
    		return age;
    	}
    
    	public void setAge(String age) {
    		this.age = age;
    	}
    
    	public Person(String name, String sex, String age) {
    		super();
    		this.name = name;
    		this.sex = sex;
    		this.age = age;
    	}
    
    	@Override
    	public String toString() {
    		return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
    	}
    	
    	
    	
    
    }
    

      

    读写对象的方法
    
    package cn.bean.demo.io.object;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.OutputStream;
    
    public class ObjectOutAndInputStreamTest {
    
    	public static void main(String[] args) {
    		//testObjectOutputStream();
    		testObjectInputStream();
    	}
    
    	/**
    	 * 将对象写入在磁盘文件中
    	 */
    	static void testObjectOutputStream() {
    
    		//
    		try (OutputStream out = new FileOutputStream("object.txt");
    				ObjectOutputStream objectOutputStream = new ObjectOutputStream(out);) {
    			// 写入的对象必须实现序列化
    			Person person = new Person("nigulas", "男", "20");
    			objectOutputStream.writeObject(person);
    
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    
    	/**
    	 * 读取磁盘文件中的对象信息
    	 */
    	static void testObjectInputStream() {
    
    		try (InputStream in = new FileInputStream("object.txt");
    				ObjectInputStream objectInputStream = new ObjectInputStream(in);)
    		{
    
    			Person person= (Person) objectInputStream.readObject();
    			System.out.println(person);
    			
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    
    }
    

      

  • 相关阅读:
    【转】最奇特的编程语言特征
    【原】mysql 视图
    自己动手写ORM框架(一):目标效果预览
    (二)Javascript面向对象:命名空间
    在JAVA中封装JSONUtils工具类及使用(一)
    .NET3.5中JSON用法以及封装JsonUtils工具类(二)
    (四)Javascript面向对象:继承
    自己动手写ORM框架(三):关系映射配置—Table属性
    (一)javascript面向对象:(2)类
    自己动手写ORM框架(二):AdoHelper支持多数据库操作的封装(1)
  • 原文地址:https://www.cnblogs.com/sunjiqiang/p/6084065.html
Copyright © 2020-2023  润新知