eugene_leshchinskiy
@eugene_leshchinskiy

Как правильно организовать файловый ввод-вывод в Java?

Приветствую :)

Начал разбираться с файловым вводом-выводом в Java и большое наличие всяких классов приводит в замешательство, что лучше использовать и как с этим работать. Поэтому прошу подсказать или скинуть мануал, где описан правильный вариант работы с файлами.

У меня файлы представляют из себя некое подобие БД в образовательных целях. Вида имя-фамилия-возраст.
Нужно в этих файлах удалять, изменять и добавлять строки. Добавление и чтение сделал при помощи оберток bufferedReader и bufferedWriter. Это правильный выбор? Как правильно организовать доступ в средину файла? Через seek()?
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ответы на вопрос 3
@r_zaycev
Но не удобнее ли будет использовать сериализатор?

Храните объект в памяти, когда нужно скидываете его на диск с помощью ObjectOutputStream, читаете когда нужно с помощью ObjectInputStream.

Я не эксперт в Java (больше опыта в C#), но ковыряться в плэйнтекстовых файлах -- это же прошлый век (: Даже может быть и в целях обучения, лучше использовать в обучении то, что скорее всего будете использовать в реальной практике.
Ответ написан
Sanan07
@Sanan07
Писатель-прозаик
Используйте BufferedReader или BufferedWriter, а если нужно то RandomAccess
Ответ написан
Комментировать
EugeneP2
@EugeneP2
Java Dev
Если в образовательных целях, то для начала продумайте свой формат фала. Например, в начале файла идет заголовок файла: к-во полей, потом перечисление полей, имя поля, тип, размер и т.д. и т.п. После заголовка идут сами данные.

Для работы со структурированными файлами в джаве есть два класса стрима DataInputStream/DataOutputStream

В них представлены методы для чтения/записи всех примитивных типов джавы.

Когда-то делал утилиту для заливки/скачивания даных с/в SQL сервер с/в dbf-файл. Так вот, библиотека (не вспомню) для работы с dbf использовала DataInputStream/DataOutputStream. Пару гигабайтный файл "залитал" на сервер за секунды, так само за секунды записывалось в dbf файл.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы