zoukankan      html  css  js  c++  java
  • 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();
    		}
    
    	}
    
    }
    

      

  • 相关阅读:
    Linux命令可以在后台运行,不随shell的关闭而关闭
    Linux系统创建python虚拟环境
    crontab定时任务不执行的一些原因总结
    解决ubuntu下定时任务不执行问题
    18-crm项目-kingadmin,完成crm用户认证登陆
    17-crm项目-kingadmin,前端展示数据库中不存在的字段
    16-crm项目-kingadmin,权限管理
    15-crm项目-kingadmin,自定义用户认证
    14-crm项目-kingadmin,动态url菜单优化
    记录安全问题---2020年9月24号
  • 原文地址:https://www.cnblogs.com/sunjiqiang/p/6084065.html
Copyright © 2011-2022 走看看