Java ObjectOutputStream writeObject()方法与示例

ObjectOutputStream类writeObject()方法 (ObjectOutputStream Class writeObject() method)

  • writeObject() method is available in java.io package.

    在java.io包中提供了writeObject()方法

  • writeObject() method is used to write the given object to the ObjectOutputStream. It includes the class, signature, values of non-static and non-transient fields of the given object of the class are written. Objects address by this object (o) are written transitively so that graph objects can be reformed by an ObjectInputStream.

    writeObject()方法用于将给定的对象写入ObjectOutputStream。 它包括类,签名,类的给定对象的非静态和非瞬态字段的值。 该对象(o)所寻址的对象是可传递的,因此可以通过ObjectInputStream重新设置图形对象。

  • writeObject() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.

    writeObject()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • writeObject() method may throw an exception at the time of writing an object.

    writeObject()方法在编写对象时可能会引发异常。

    • IOException: This exception may throw when getting any input/output error while writing to the output stream.IOException :在写入输出流时遇到任何输入/输出错误时,可能引发此异常。
    • InvalidClassException: This exception may throw when invalid things with a class used by serialization.InvalidClassException :当序列化使用的类包含无效内容时,可能会抛出此异常。
    • NotSerializableException: This exception may throw when the serialized object does not implement the Serializable interface.NotSerializableException :当序列化的对象未实现Serializable接口时,可能引发此异常。

Syntax:

句法:

    public final void writeObject(Object o);

Parameter(s):

参数:

  • Object o – represents the object to be written.

    对象o –表示要写入的对象。

Return value:

返回值:

The return type of the method is void, it returns nothing.

该方法的返回类型为void ,不返回任何内容。

Example:

例:

// Java program to demonstrate the example 
// of void writeObject(Object o) method of 
// ObjectOutputStream

import java.io.*;

public class WriteObjectOfOOS {
 public static void main(String[] args) throws Exception {
  // Instantiates ObjectOutputStream , ObjectInputStream 
  // FileInputStream and FileOutputStream

  FileOutputStream file_out_stm = new FileOutputStream("D:\\includehelp.txt");
  ObjectOutputStream obj_out_stm = new ObjectOutputStream(file_out_stm);
  FileInputStream file_in_stm = new FileInputStream("D:\\includehelp.txt");
  ObjectInputStream obj_in_stm = new ObjectInputStream(file_in_stm);

  // By using writeObject() method is to
  // write the object to the stream		
  obj_out_stm.writeObject("Java");
  obj_out_stm.writeObject("World");

  obj_out_stm.flush();

  // By using readObject() method is to 
  // read the object
  for (int i = 0; i < 2; ++i) {
   String str = (String) obj_in_stm.readObject();
   System.out.println("obj_in_stm.readObject(): " + str);
  }

  // By using close() method is to 
  // close all the streams 
  System.out.println("Stream Shutdown... ");

  file_in_stm.close();
  file_out_stm.close();
  obj_in_stm.close();
  obj_out_stm.close();
 }
}

Output

输出量

obj_in_stm.readObject(): Java
obj_in_stm.readObject(): World
Stream Shutdown... 


翻译自: https://www.includehelp.com/java/objectoutputstream-writeobject-method-with-example.aspx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java ObjectOutputSteam 是一个用于将 Java 对象序列化为字节流的类。它提供了一种将 Java 对象转换为字节流的方法,以便在网络上传输或保存到文件中。使用 ObjectOutputSteam,可以将 Java 对象写入到输出流中,然后在需要时将其读取回来。这个类还提供了一些方法来控制对象序列化的方式,例如指定对象的版本号、是否允许写入 null 值等。总之,Java ObjectOutputSteam 是一个非常有用的类,可以帮助开发人员轻松地将 Java 对象序列化为字节流。 ### 回答2: Java ObjectOuputStream(对象输出流)是Java中用于将对象以字节方式写入输出流的类。 使用ObjectOuputStream的流程如下: 1. 创建一个文件输出流或网络输出流对象,用于将对象写入文件或发送给其他计算机。 2. 根据创建的输出流对象,创建一个ObjectOutputSteam对象。 3. 使用ObjectOutputStreamwriteObject()方法将需要写入的对象(必须实现Serializable接口)写入输出流。 例子如下: ```java try { // 创建文件输出流 FileOutputStream fileOutputStream = new FileOutputStream("output.txt"); // 创建ObjectOutputStream对象 ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); // 创建一个对象 MyObject myObject = new MyObject(); // 将对象写入输出流 objectOutputStream.writeObject(myObject); // 关闭输出流 objectOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } ``` 需要注意的是,写入的对象必须实现Serializable接口,否则会抛出NotSerializableException异常。Serializable接口是一个标记接口,没有任何方法定义,仅表示该类可以被序列化。 另外,ObjectOutputStream还提供了其他一些方法,如writeInt(),writeDouble()等,用于按照特定的类型写入数据。 使用ObjectOuputStream可以方便地将Java对象序列化并写入输出流,非常适合在Java程序之间进行对象的传输或存储。 ### 回答3: JavaObjectOutputStream是一个用于将对象序列化为字节流的类。以下是关于如何使用ObjectOutputStream的一些基本使用方式和注意事项: 1. 创建ObjectOutputStream对象:可以通过将其构造函数与FileOutputStream(或其他OutputStream)的实例进行连接来创建ObjectOutputStream对象。示例代码如下: ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("output.txt")); 2. 写入对象:使用ObjectOutputStreamwriteObject()方法可以将对象写入输出流中。需要注意的是,写入的对象必须实现java.io.Serializable接口,否则将抛出NotSerializableException异常。示例代码如下: MyClass myObj = new MyClass(); oos.writeObject(myObj); 3. 刷新和关闭流:在写入完所有对象后,可以使用flush()方法刷新缓冲区,确保所有字节都已写入。最后,调用close()方法关闭流。示例代码如下: oos.flush(); oos.close(); 4. 读取对象:要从ObjectOutputStream读取对象,需要使用ObjectInputStream。首先,使用FileInputStream(或其他InputStream)创建ObjectInputStream对象。然后,使用ObjectInputStream的readObject()方法读取对象。示例代码如下: ObjectInputStream ois = new ObjectInputStream(new FileInputStream("output.txt")); MyClass myObj = (MyClass) ois.readObject(); 5. 异常处理:在使用ObjectOutputStream时,需要注意处理可能发生的IOException和ClassNotFoundException异常。这些异常可以通过try-catch语句进行处理,确保程序正常运行并避免意外错误。 ObjectOutputStreamJava中用于序列化对象的强大工具。它可以将对象转换为字节流,以便在网络上进行传输或将对象保存到文件中。但是要注意的是,被序列化的对象必须实现Serializable接口,并且需要特别注意对象的序列化和反序列化版本一致,以免导致不兼容的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值