4. 请简述ObjectOutputStream 的作用?
时间: 2024-06-11 18:07:13 浏览: 88
ObjectOutputStream是一个Java类,用于将Java对象序列化为字节流并写入输出流。它可以将Java对象转换为字节流,以便在网络上传输或在本地存储。写入对象时,ObjectOutputStream将对象的类和数据写入流,并将对象的状态保存为字节序列。ObjectOutputStream还提供了一些便捷的方法来写入原始数据类型和字符串。它与ObjectInputStream一起使用,可以实现Java对象的反序列化。
相关问题
3. 请简述ObjectInputStream 和ObjectOutputStream 的作用? 答:
ObjectInputStream和ObjectOutputStream是Java的两个类,用于读写Java对象。其中,ObjectInputStream可以从输入流中读取Java对象,而ObjectOutputStream可以将Java对象写入输出流中。这两个类可以将Java对象转换为字节流,以便于在网络上传输或者存储到文件中。另外,它们还支持序列化和反序列化操作。序列化是将Java对象转换为字节流,而反序列化则是将字节流转换为Java对象。这两个类在Java中的对象流通信和对象持久化中起到了重要的作用。
public class TestDemo{ public static void main(String[] args) throws Exception{ ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("test.dat"))); objectOutputStream.writeObject(new A()); objectOutputStream.close(); } } class A{ }简述出现异常的原因,并改正
该代码会抛出 java.io.NotSerializableException 异常,因为类 A 没有实现 Serializable 接口,不能被序列化。要解决这个问题,需要让类 A 实现 Serializable 接口,使用以下代码:
```
import java.io.*;
public class TestDemo {
public static void main(String[] args) throws Exception {
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("test.dat")));
objectOutputStream.writeObject(new A());
objectOutputStream.close();
}
}
class A implements Serializable {
}
```
这样就可以成功地将类 A 对象写入文件中了。
阅读全文