JavaIO函数:读写文件、序列化和反序列化
发布时间:2023-06-29 06:16:17
JavaIO是Java语言中用于进行输入和输出操作的标准库。它提供了丰富的函数和类,用于读写文件、序列化和反序列化对象。
读写文件是JavaIO最常见的用法之一。使用FileInputStream和FileOutputStream类可以方便地进行文件的读写操作。下面是一个示例:
try {
// 创建文件输出流
FileOutputStream fos = new FileOutputStream("filename.txt");
// 写入数据
fos.write("Hello, World!".getBytes());
// 关闭流
fos.close();
// 创建文件输入流
FileInputStream fis = new FileInputStream("filename.txt");
// 读取数据
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
// 关闭流
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
序列化和反序列化是Java中对象持久化的方法之一。通过将对象转换为二进制流的形式进行存储,可以在需要的时候重新读取出来并重新创建对象。Java提供了ObjectOutputStream和ObjectInputStream类来实现对象的序列化和反序列化。下面是一个示例:
try {
// 创建对象
MyClass obj = new MyClass();
obj.setName("John");
obj.setAge(30);
// 创建文件输出流
FileOutputStream fos = new FileOutputStream("object.bin");
// 创建对象输出流
ObjectOutputStream oos = new ObjectOutputStream(fos);
// 序列化对象
oos.writeObject(obj);
// 关闭流
oos.close();
fos.close();
// 创建文件输入流
FileInputStream fis = new FileInputStream("object.bin");
// 创建对象输入流
ObjectInputStream ois = new ObjectInputStream(fis);
// 反序列化对象
MyClass newObj = (MyClass) ois.readObject();
// 关闭流
ois.close();
fis.close();
// 打印对象属性
System.out.println(newObj.getName());
System.out.println(newObj.getAge());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
以上是JavaIO中读写文件、序列化和反序列化的基本使用方法。通过合理使用JavaIO函数,可以方便地进行文件操作和对象持久化,并且为Java程序的开发和运行提供了很大的便利性。
