A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 公子-醉香 中级黑马   /  2013-12-15 13:10  /  962 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.ObjectInputStream;
  6. import java.io.ObjectOutputStream;

  7. public class Serialization1 {
  8.         public static void main(String[] args) throws IOException,ClassNotFoundException{
  9.                 // TODO Auto-generated method stub
  10.                 Employ emp=new Employ(1,"xxx",20,"xxx");
  11.                 File srcFile=new File("serial.text");
  12.                 FileOutputStream fos=new FileOutputStream(srcFile);
  13.                 ObjectOutputStream os=new ObjectOutputStream(fos);
  14.                 FileInputStream fi=new FileInputStream(srcFile);
  15.                 ObjectInputStream si=new ObjectInputStream(fi);
  16.                 System.out.println("开始写入文件,该文件的大小为: "+srcFile.length()+"字节");
  17.                 try{
  18.                         os.writeObject(emp);
  19.                         os.close();
  20.                 }catch(IOException e){
  21.                         System.out.println(e.getMessage());
  22.                 }
  23.                 System.out.println("写入文件完成,该文件大小为:"+srcFile.length()+"字节");
  24.                 emp=null;
  25.                 try{
  26.                         emp=(Employ)si.readObject();
  27.                 }catch(IOException e){
  28.                         System.out.println(e.getMessage());
  29.                 }
  30.                
  31.                 //输出获取到的信息
  32.                 System.out.println("输出文件里的信息:");
  33.                 System.out.println("雇员的ID为:"+emp.id);
  34.                 System.out.println("雇员的name为:"+emp.name);
  35.                 System.out.println("雇员的age为:"+emp.age);
  36.                 System.out.println("雇员的department为:"+emp.department);
  37.         }
  38.         //代码分析:
  39.         /*
  40.          1.在上述代码中主要实现用文件输出流对象os向文件serial写入信息,,然后再通过文件输入流si从文件serial中读取信息并输出
  41.          2.首先创建了与文=文件serial相关的文件输入流fos和文件输出流fi,然后通过ObjectOutputStream和ObjectInputStream类使得
  42.                  输入流os和输出流si分别具有了直接操作对象的功能。
  43.          3.在具体写入文件时,通过os.writeOb()方法直接把雇员对象emp写入文件,在具体读取文件时,
  44.                  通过si.readOb()方法获取Object对象,然后再强转成雇员类型Employ
  45.                  。
  46.          */
  47. }
复制代码


评分

参与人数 1黑马币 +5 收起 理由
乔兵 + 5

查看全部评分

1 个回复

倒序浏览
赞一个..................
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马