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();
    		}
    
    	}
    
    }
    

      

  • 相关阅读:
    c语言结构体数组引用
    c语言结构体数组定义的三种方式
    如何为SAP WebIDE开发扩展(Extension),并部署到SAP云平台上
    SAP SRM ABAP Webdynpro和CFCA usb key集成的一个原型开发
    使用SAP API portal进行SAP SuccessFactors的API测试
    SAP UI5应用里的页面路由处理
    在SAP WebIDE Database Explorer里操作hdi实例
    如何使用SAP事务码SAT进行UI应用的性能分析
    使用SAP WebIDE进行SAP Cloud Platform Business Application开发
    SAP CRM WebClient UI ON_NEW_FOCUS的用途
  • 原文地址:https://www.cnblogs.com/sunjiqiang/p/6084065.html
Copyright © 2011-2022 走看看