IO流——序列化处理流(ObjectInputStream和ObjectOutputStream)

来源:互联网 发布:stringbuffer的源码 编辑:程序博客网 时间:2024/04/28 14:54
package com.qianfeng.demo05;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.Arrays;public class ObjectDemo {public static void main(String[] args) {//writeFile("c:/test.txt");readFile("c:/test.txt");}public static void writeFile(String destPath){File destFile = new File(destPath);//明确数据源Employee e1 = new Employee("tom",1700);int []arr = {1,3,5,7,9};//选择流ObjectOutputStream oos = null;try {oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(destFile)));//操作向文件中写入数据,为读取做准备oos.writeObject(e1);oos.writeObject(arr);//刷新流oos.flush();//关闭流oos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//反序列化的顺序和序列化的顺序必须一致public static void readFile(String srcFile){File file = new File(srcFile);ObjectInputStream ois = null;try {ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(srcFile)));//读取数据Object obj = ois.readObject();Employee emp = (Employee)obj;System.out.println(emp);int[]arr = (int[]) ois.readObject();System.out.println(Arrays.toString(arr));ois.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

0 0