我试图将一个对象数组保存到一个文件,然后能够读取该文件中的对象并将它们添加到数组。我没有得到任何错误,但它似乎没有做任何事情。我不确定我的问题在于我的读取或写入方法。读取/写入对象数组到文件
Movie allmovies = new Movie[4]
public void writeFile()
{
try
{
FileOutputStream fos = new FileOutputStream("movies.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(allmovies);
oos.close();
System.out.println("File Saved");
}
catch(Exception e) {
System.out.println("Error in output:" + e.toString());
}
}
public void readFile()
{
try
{
FileInputStream fis = new FileInputStream("movies.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Movie[] allmovies = (Movie[]) ois.readObject();
ois.close();
System.out.println("File Imported");
}
catch(Exception e)
{
System.out.println("Error in output:" + e.toString());
}
}
编辑:此外,我们已经考虑到我们需要阅读示例文件的格式是
电影标题:
导演:
作品尺寸:
时间:
我能够得到它写1个对象和重新广告1对象,但当我查看保存的文件时,它的格式不同。无论如何,它要采用与例子相同的格式?
a)您的代码不“按兵不动”,因为..你还没有写你的代码做任何可观察到的。没有显示任何内容的打印语句,并且您只是将电影读入** local **变量'allmovies'中,而不是返回/打印等。(您还有一个在方法外部声明的变量'allmovies',但是您没有读到这个 - 无论如何你也不打印它)。所以..也许你没有显示你的真实代码,但是上面的代码不会“做”任何事情。 –
“另外我们给出的示例文件的格式是我们需要阅读的”..并且这里显示的是基于文本的文件格式。所以如果这就是你应该读/写的方式,那么你不应该使用对象序列化。 –
长话短说:提供[mcve] – GhostCat