我試圖將一個對象數組保存到一個文件,然後能夠讀取該文件中的對象並將它們添加到數組。我沒有得到任何錯誤,但它似乎沒有做任何事情。我不確定我的問題在於我的讀取或寫入方法。讀取/寫入對象數組到文件
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