Java如何将对象存储在文件中?

此示例演示如何使用java.io.ObjectOutputStream和java.io.ObjectInputStream类来写入和读取序列化的对象。我们将创建一个Book实现java.io.Serializable接口。本Book类有接受所有的书详细信息的构造。

要将对象写入流,我们调用ObjectOutputStream类的writeObject()方法,并将序列化的对象传递给它。为了读回对象,我们调用ObjectInputStream类的readObject()方法。

package org.nhooo.example.io;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

public class ObjectStoreExample {

    public static void main(String[] args) {

        // 创建FileOutputStream和ObjectOutputStream的实例。

        try (FileOutputStream fos = new FileOutputStream("books.dat");

             ObjectOutputStream oos = new ObjectOutputStream(fos)) {

            //创建一个Book实例。然后将这本书对象存储在

            // 文件。

            Book book = new Book("0-07-222565-3", "Hacking Exposed J2EE & Java",

                "Art Taylor, Brian Buege, Randy Layman");

            // 通过使用ObjectOutputStream的writeObject()方法,我们可以

            // 使book对象持久保存在books.dat文件中。

            oos.writeObject(book);

        } catch (IOException e) {

            e.printStackTrace();

        }

        //我们已经保存了这本书。现在该回读并显示它了

        // 其详细信息。

        try (FileInputStream fis = new FileInputStream("books.dat");

             ObjectInputStream ois = new ObjectInputStream(fis)) {

            // 要读取Book对象,请使用ObjectInputStream.readObject()方法。

            // 此方法返回对象类型数据,因此我们需要将其投射回

            // 起源类,书籍类。

            Book book = (Book) ois.readObject();

            System.out.println(book.toString());

        } catch (IOException | ClassNotFoundException e) {

            e.printStackTrace();

        }

    }

}

// 书籍对象将使用ObjectOutputStream类保存并被读取

//返回使用ObjectInputStream类。使对象可以写入

// 流,我们需要使该类实现Serializable接口。

class Book implements Serializable {

    private String isbn;

    private String title;

    private String author;

    public Book(String isbn, String title, String author) {

        this.isbn = isbn;

        this.title = title;

        this.author = author;

    }

    @Override

    public String toString() {

        return "Book{" +

            "isbn='" + isbn + '\'' +

            ", title='" + title + '\'' +

            ", author='" + author + '\'' +

            '}';

    }

}

上面的代码片段的结果是:

Book{isbn='0-07-222565-3', title='Hacking Exposed J2EE & Java', author='Art Taylor, Brian Buege, Randy Layman'}

                       

以上是 Java如何将对象存储在文件中? 的全部内容, 来源链接: utcz.com/z/345246.html

回到顶部