Java Java.io.ObjectOutputStream.writeObject() 方法

  • 描述

    java.io.ObjectOutputStream.writeObject(Object obj)方法将指定的对象写入ObjectOutputStream。写入对象的类,类的签名以及该类及其所有超类型的非瞬态和非静态字段的值。可以使用writeObject和readObject方法覆盖类的默认序列化。该对象引用的对象是可传递的,因此ObjectInputStream可以重建对象的完整等效图。
  • 声明

    以下是java.io.ObjectOutputStream.writeObject()方法的声明。
     public final void writeObject(Object obj)
  • 参数

    obj要写入的对象。
  • 返回值

    此方法不返回值。
  • 异常

    • InvalidClassException序列化使用的类出了点问题。
    • NotSerializableException某些要序列化的对象未实现java.io.Serializable接口。
    • IOException基础OutputStream抛出的任何异常。
  • 例子

    以下示例显示java.io.ObjectOutputStream.writeObject()方法的用法。
     
    package com.jc2182;
    import java.io.*;
    
    public class ObjectOutputStreamDemo {
       public static void main(String[] args) {
          String s = "Hello world!";
          int i = 897648764;
          
          try {
             // create a new file with an ObjectOutputStream
             FileOutputStream out = new FileOutputStream("test.txt");
             ObjectOutputStream oout = new ObjectOutputStream(out);
    
             // write something in the file
             oout.writeObject(s);
             oout.writeObject(i);
    
             // 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 what we wrote before
             System.out.println("" + (String) ois.readObject());
             System.out.println("" + ois.readObject());
          } catch (Exception ex) {
             ex.printStackTrace();
          }
       }
    }
    
    让我们编译并运行以上程序,这将产生以下结果-
     
    Hello world!
    897648764