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