欢迎访问宙启技术站
智能推送

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程序的开发和运行提供了很大的便利性。