Java Java.io.ObjectOutputStream enableReplaceObject() 方法
-
描述
java.io.ObjectOutputStream.enableReplaceObject(boolean enable)方法使流可以替换流中的对象。启用后,将为每个要序列化的对象调用replaceObject方法。如果enable为true,并且安装了安全管理器,则此方法首先调用具有SerializablePermission(“ enableSubstitution”)权限的安全管理器的checkPermission方法,以确保可以使流进行流中对象的替换。 -
声明
以下是java.io.ObjectOutputStream.enableReplaceObject()方法的声明。protected boolean enableReplaceObject(boolean enable)
-
参数
enable布尔参数启用对象替换。 -
返回值
在调用此方法之前,此方法将返回先前的设置。 -
异常
SecurityException如果安全管理器存在并且其checkPermission方法拒绝启用流以替换流中的对象。 -
例子
以下示例显示java.io.ObjectOutputStream.enableReplaceObject()方法的用法。package com.jc2182; import java.io.*; public class ObjectOutputStreamDemo extends ObjectOutputStream { public ObjectOutputStreamDemo(OutputStream out) throws IOException { super(out); } public static void main(String[] args) { int i = 319874; try { // create a new file with an ObjectOutputStream FileOutputStream out = new FileOutputStream("test.txt"); ObjectOutputStreamDemo oout = new ObjectOutputStreamDemo(out); // enable replacing objects and return the previous setting System.out.println("" + oout.enableReplaceObject(true)); // write something in the file oout.writeInt(i); oout.writeInt(1653984); oout.flush(); // close the stream oout.close(); // create an ObjectInputStream for the file we created before ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.txt")); // read and print an int System.out.println("" + ois.readInt()); // read and print an int System.out.println("" + ois.readInt()); } catch (Exception ex) { ex.printStackTrace(); } } }
让我们编译并运行以上程序,这将产生以下结果-false 319874 1653984