对象输入流/对象输出流主要用于对对象进行执行,其技术基础建立在字节输入流/字节输出流上,正如同缓冲字符输入流/缓冲字符输出流的技术基础建立在字符输入流/字符输出流上一样。
一、对象输出流
创建步骤:
① 创建输出目标文件的 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(); //关闭文件资源
}
}