2013-04-02 2 views
0

У меня есть класс ArrayList и пытаюсь сохранить его в файл. Я пишу небольшой тестовый метод для сохранения строки в файл, а затем загружаю ее.Чтение строк вместо символов из потока

Я нашел метод в классе FileWriter для записи строки. Я не смог найти какие-либо методы в файле FileReader для чтения в строках. Есть ли способ сделать это?

+0

Какие типы объектов вы храните в своем ArrayList, и каково ваше представление файла? – hertzsprung

ответ

1

Самый простой способ для хранения ArrayList в файле с ObjectOutputStream:

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(yourfile)); 
oos.writeObject(list); 

Чтобы восстановить ArrayList вы используете ObjectInputStream:

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(yourfile)); 
ArrayList list = (ArrayList) ois.readObject(); 

формат сериализации этих классов гарантирует, что вы можете безопасно хранить строки с любыми классами персонажей, не опасаясь нарушить выход. Линейное хранилище, например при использовании BufferedReader.readLine, не позволяет восстанавливать строки со встроенными разрывами строк.

+0

Ahhh так просто, спасибо, я выглядел так, будто я лаял неправильное дерево. -Ted –

+0

Я НЕ МОЖЕТ БЫТЬ ПОЛУЧИТЬ БЮСТОВОЙ ОБРАЗЦЫ К РАБОТЕ: работать, на строке oos.write (cGlobals.conFav) ;, я получаю сообщение об ошибке «не применимо для типа ArrayList» –

+0

К сожалению, это должно быть 'writeObject 'и' readObject', а не 'write' и' read'. Исправленный. – Joni

3

Использование BufferedReader методом readLine()

Смежные вопросы