Java IO 中对象的序列化操作

 

Java IO 中对象的序列化操作

Java IO 中对象的序列化操作

这是一个在IO中比较基础的问题,但是因为很少用到,很容易遗忘,面试的时候可能会遇到,所以记录到博客上,防止忘记

 

其实代码很简单:主要是用到两个类ObjectInputStream 和ObjectOutputStream 分别实现对类的读取和写入

 

注意的一点是:要序列化的类应该实现Serialiable接口,其实是一个空的接口,包含写入和读取的测试程序代码

 

Java代码 复制代码  收藏代码
  1. import java.io.File;   
  2. import java.io.FileInputStream;   
  3. import java.io.FileOutputStream;   
  4. import java.io.ObjectInputStream;   
  5. import java.io.ObjectOutputStream;   
  6. import java.util.UUID;   
  7.   
  8.   
  9. public class TestSerialized {   
  10.     /**  
  11.      * 把对象写入文件  
  12.      * @throws Exception  
  13.      */  
  14.     public static void WriteObject(Object obj)throws Exception{   
  15.         FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));   
  16.         ObjectOutputStream oos = new ObjectOutputStream(fis);   
  17.         oos.writeObject(obj);   
  18.         oos.close();   
  19.     }   
  20.     /**  
  21.      * 从文件读取对象  
  22.      * @return  
  23.      * @throws Exception  
  24.      */  
  25.     public static Object readObject() throws Exception {   
  26.         FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));   
  27.         ObjectInputStream oos = new ObjectInputStream(fis);   
  28.         return oos.readObject();   
  29.     }   
  30.     public static void testWrite() throws Exception{   
  31.         SerializedClass sc = new SerializedClass();   
  32.         sc.setId(UUID.randomUUID().toString());   
  33.         sc.setName("zhougege");   
  34.         WriteObject(sc);   
  35.         System.out.println("写入的对象:");   
  36.         System.out.println(sc.getId());   
  37.         System.out.println(sc.getName());   
  38.     }   
  39.     public static void testRead() throws Exception{   
  40.         Object obj = readObject();   
  41.         SerializedClass sc = (SerializedClass)obj;   
  42.         System.out.println("读取到的对象:");   
  43.         System.out.println(sc.getId());   
  44.         System.out.println(sc.getName());   
  45.     }   
  46.     public static void main(String[] args) throws Exception {   
  47.         testWrite();   
  48.         testRead();   
  49.     }   
  50. }  
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.UUID;


public class TestSerialized {
	/**
	 * 把对象写入文件
	 * @throws Exception
	 */
	public static void WriteObject(Object obj)throws Exception{
		FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));
		ObjectOutputStream oos = new ObjectOutputStream(fis);
		oos.writeObject(obj);
		oos.close();
	}
	/**
	 * 从文件读取对象
	 * @return
	 * @throws Exception
	 */
	public static Object readObject() throws Exception {
		FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));
		ObjectInputStream oos = new ObjectInputStream(fis);
		return oos.readObject();
	}
	public static void testWrite() throws Exception{
		SerializedClass sc = new SerializedClass();
		sc.setId(UUID.randomUUID().toString());
		sc.setName("zhougege");
		WriteObject(sc);
		System.out.println("写入的对象:");
		System.out.println(sc.getId());
		System.out.println(sc.getName());
	}
	public static void testRead() throws Exception{
		Object obj = readObject();
		SerializedClass sc = (SerializedClass)obj;
		System.out.println("读取到的对象:");
		System.out.println(sc.getId());
		System.out.println(sc.getName());
	}
	public static void main(String[] args) throws Exception {
		testWrite();
		testRead();
	}
}

 写入对象的核心代码

Java代码 复制代码  收藏代码
  1. /**  
  2.  * 把对象写入文件  
  3.  * @throws Exception  
  4.  */  
  5. public static void WriteObject(Object obj)throws Exception{   
  6.     FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));   
  7.     ObjectOutputStream oos = new ObjectOutputStream(fis);   
  8.     oos.writeObject(obj);   
  9.     oos.close();   
  10. }  
	/**
	 * 把对象写入文件
	 * @throws Exception
	 */
	public static void WriteObject(Object obj)throws Exception{
		FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));
		ObjectOutputStream oos = new ObjectOutputStream(fis);
		oos.writeObject(obj);
		oos.close();
	}

 

读取对象的核心代码

Java代码 复制代码  收藏代码
  1. /**  
  2.  * 从文件读取对象  
  3.  * @return  
  4.  * @throws Exception  
  5.  */  
  6. public static Object readObject() throws Exception {   
  7.     FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));   
  8.     ObjectInputStream oos = new ObjectInputStream(fis);   
  9.     return oos.readObject();   
  10. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值