对象输入流/对象输出流主要用于对对象进行执行,其技术基础建立在字节输入流/字节输出流上,正如同缓冲字符输入流/缓冲字符输出流的技术基础建立在字符输入流/字符输出流上一样。
一、对象输出流
创建步骤:
① 创建输出目标文件的 File 对象:File file=new File("路径");
② 创建 File 对象的字节输出流对象:FileOutputStream fos=new FileOutputStream(file);
③ 创建 FileOutputStream 对象的对象输出流对象:ObjectOutputStream oos=new ObjectOutputStream(fos);
④ 使用对象输出流对象的 .writeObject 方法,将对象输出至文件。
注:被输出对象的类要实现 Serializable 接口,否则无法正常写入。
public class Animal implements Serializable{public String name;public int age;public Animal(String name,int age){this.name=name;this.age=age;}
}
public class Test{public static void main(String[] args){Animal a1=new Animal("dog",2);File file=new File("D:\\android\\test\\a.txt");FileOutputStream fos=new FileOutputStream(file);ObjectOutputStream oos=new ObjectOutputStream(fos);oos.writeObject(a1);oos.flush(); //清空缓存区fos.close(); //关闭文件资源oos.close(); //关闭文件资源}
}
二、对象输入流
创建步骤:
① 创建输入源文件的 File 对象:File file=new File("路径");
② 创建 File 对象的字节输入流对象:FileInputStream fis=new FileInputStream(file);
③ 创建 FileInputStream 对象的对象输入流对象:ObjectInputStream ois=new ObjectInputStream(fis);
④ 使用对象输入流对象的 .readObject 方法,将对象输入至程序。
public class Test{public static void main(String[] args){File file=new File("D:\\android\\test\\a.txt");FileInputStream fis=new FileInputStream(file);ObjectInputStream ois=new ObjectInputStream(fis);Animal x=(Animal)ois.readObject();System.out.println(x.name);fis.close(); //关闭文件资源ois.close(); //关闭文件资源}
}