replaceObject()方法replaceObject()方法在java.io包中可用。
replaceObject()方法用于允许ObjectOutputStream的所有受信任子类在序列化时将给定对象替换为另一个。停用对象替换,直到enableReplaceObject()可以信任请求进行替换的流的字符为止。序列化流中写入的每个对象的第一次出现都传递给replaceObject。对对象的后续引用将由对replaceObject的调用所检索的对象替换。它仅允许受信任的流替换对象。
replaceObject()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
replaceObject()方法在替换对象时可能会引发异常。
IOException:在写入输出流时遇到任何输入/输出错误时,可能引发此异常。
语法:
protected Object replaceObject(Object o);
参数:
对象o –表示要替换的对象。
返回值:
此方法的返回类型为Object,它返回另一个替换给定对象的替代对象。
示例
//Java程序演示示例
//对象的replaceObject(Object o)方法
//ObjectOutputStream-
import java.io.*;
public class ReplaceObject extends ObjectOutputStream {
public ReplaceObject(OutputStream os_stm) throws IOException {
super(os_stm);
}
public static void main(String[] args) throws IOException {
String str = "Java World!!!";
try {
//实例化ObjectOutputStream,ObjectInputStream-
//FileInputStream和FileOutputStream-
FileOutputStream file_out_stm = new FileOutputStream("D:\\includehelp.txt");
ReplaceObject obj_out_stm = new ReplaceObject(file_out_stm);
FileInputStream file_in_stm = new FileInputStream("D:\\includehelp.txt");
ObjectInputStream obj_in_stm = new ObjectInputStream(file_in_stm);
//obj_out_stm.writeObject(new ReadObject());
obj_out_stm.writeUTF(str);
obj_out_stm.flush();
//通过使用enableReplaceObject()方法是
//启用物件抵抗
System.out.println("enableReplaceObject() invoked: ");
boolean status = obj_out_stm.enableReplaceObject(true);
System.out.println("obj_in_stm.enableReplaceObject(true): " + status);
Object o = obj_out_stm.replaceObject("Java Programmer");
System.out.println("obj_out_stm.replaceObject(Java Programmer): " + o);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}输出结果
enableReplaceObject() invoked: obj_in_stm.enableReplaceObject(true): false obj_out_stm.replaceObject(Java Programmer): Java Programmer