io流object java
时间: 2023-09-07 20:17:56 浏览: 100
Java 中的 IO 流是一种用于读取和写入数据的机制,它可以通过不同的方式进行操作,例如读写文件、网络连接、标准输入输出等。
ObjectInputStream 和 ObjectOutputStream 是 Java 中用于序列化和反序列化对象的 IO 流。ObjectOutputStream 可以将 Java 对象转换为字节序列并写入到输出流中,而 ObjectInputStream 可以从输入流中读取字节序列并将其转换为 Java 对象。
以下是一个简单的示例代码,演示了如何使用 ObjectInputStream 和 ObjectOutputStream 进行对象的序列化和反序列化:
```java
public class SerializationDemo {
public static void main(String[] args) {
// 创建一个对象
Person person = new Person("John", 30);
// 将对象序列化并写入到文件中
try (ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
outputStream.writeObject(person);
} catch (IOException e) {
e.printStackTrace();
}
// 从文件中读取对象并反序列化
try (ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("person.ser"))) {
Person deserializedPerson = (Person) inputStream.readObject();
System.out.println(deserializedPerson);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
在上面的示例代码中,我们创建了一个 Person 类,并将其实例写入到文件中,然后再从文件中读取并反序列化为一个新的 Person 对象。注意,在序列化和反序列化过程中,Person 类必须实现 Serializable 接口,否则会抛出 NotSerializableException 异常。
阅读全文