- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- public class Serialization1 {
- public static void main(String[] args) throws IOException,ClassNotFoundException{
- // TODO Auto-generated method stub
- Employ emp=new Employ(1,"xxx",20,"xxx");
- File srcFile=new File("serial.text");
- FileOutputStream fos=new FileOutputStream(srcFile);
- ObjectOutputStream os=new ObjectOutputStream(fos);
- FileInputStream fi=new FileInputStream(srcFile);
- ObjectInputStream si=new ObjectInputStream(fi);
- System.out.println("开始写入文件,该文件的大小为: "+srcFile.length()+"字节");
- try{
- os.writeObject(emp);
- os.close();
- }catch(IOException e){
- System.out.println(e.getMessage());
- }
- System.out.println("写入文件完成,该文件大小为:"+srcFile.length()+"字节");
- emp=null;
- try{
- emp=(Employ)si.readObject();
- }catch(IOException e){
- System.out.println(e.getMessage());
- }
-
- //输出获取到的信息
- System.out.println("输出文件里的信息:");
- System.out.println("雇员的ID为:"+emp.id);
- System.out.println("雇员的name为:"+emp.name);
- System.out.println("雇员的age为:"+emp.age);
- System.out.println("雇员的department为:"+emp.department);
- }
- //代码分析:
- /*
- 1.在上述代码中主要实现用文件输出流对象os向文件serial写入信息,,然后再通过文件输入流si从文件serial中读取信息并输出
- 2.首先创建了与文=文件serial相关的文件输入流fos和文件输出流fi,然后通过ObjectOutputStream和ObjectInputStream类使得
- 输入流os和输出流si分别具有了直接操作对象的功能。
- 3.在具体写入文件时,通过os.writeOb()方法直接把雇员对象emp写入文件,在具体读取文件时,
- 通过si.readOb()方法获取Object对象,然后再强转成雇员类型Employ
- 。
- */
- }
复制代码
|