我有3个Person类型的对象,我将它们写入我的文件Person.person,而不是我逐个阅读它们但是当我再次运行我的程序时,我得到了相同的3个objets,当我为它运行时每次我运行我的程序时,如何将这3个对象一次又一次地添加到我的文件中。我希望它是相同的3个对象或其他一些对象但是需要将它们添加到我文件的末尾。
当我想读取该文件时如何获取该数据?
package pisanjeUFajl;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
public class Serilizacija {
public static void main(String[] args) throws IOException,
ClassNotFoundException {
Person person = new Person("Jovan", "Dukic");
Person person2 = new Person("Stanko", "Maca");
Person person3 = new Person("Tole", "Lopove");
File file = new File("C:\\Users\\Jovan\\Desktop\\Person.person");
if (!(file.exists())) {
file.createNewFile();
}
ObjectOutputStream outputStream = null;
outputStream = new ObjectOutputStream(new BufferedOutputStream(new
FileOutputStream(file)));
outputStream.writeObject(person);
outputStream.reset();
outputStream.writeObject(person2);
outputStream.reset();
outputStream.writeObject(person3);
outputStream.reset();
outputStream.close();
ObjectInputStream inputStream = null;
inputStream = new ObjectInputStream(new BufferedInputStream(new
FileInputStream(file)));
int count = 0;
Person object = null;
我在文件中添加了更多对象,但是当我想要阅读它们时,我得到了错误: 线程" main"中的例外情况java.io.StreamCorruptedException: 无效的类型代码:AC
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at pisanjeUFajl.Serilizacija.main(Serilizacija.java:46)
它只读取了第一个添加到我文件中的前3个对象。
try {
while (true) {
object = (Person) inputStream.readObject();
count++;
System.out.println(object);
}
} catch (EOFException error) {
System.out.println("\nEnd of file reacher - objects read = " +
count);
}
inputStream.close();
}
}
答案 0 :(得分:1)
fd
阅读 ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(" test"));
答案 1 :(得分:0)
使用FileOutputStream的构造函数接受布尔值作为参数。 如果将其设置为true,则通过此Stream写入文件的所有内容都将附加到现有内容中。构造函数如下所示:
FileOutputStream(File file, boolean append)