Ранее мы уже писали о том, как записать данные в файл. Сегодня же мы будет эти файлы дописывать или обновлять. Мы можем добавлять данные в существующий файл (обновлять содержимое файла), используя FileWriter , BufferedWriter или FileOutputStream .
Содержание
- Как дописать файл в Java? Теория
- Как обновить файл. Практика
- 30 ответов
- Java 7 +
- Старая Java
- Обработка исключений
- 2 ответа 2
- Метод 1:
- Метод 2:
- Всё ещё ищете ответ? Посмотрите другие вопросы с метками java или задайте свой вопрос.
- Связанные
- Похожие
Как дописать файл в Java? Теория
- Если вы работаете с небольшими объемами текстовой информации, используйте FileWriter с флагом true в конструкторе (подробнее смотрите ниже в пункте Практика).
- Если количество операций с файлами очень большое, то желательно использовать BufferedWriter .
- Чтобы дописать в файл бинарные данные или данные с открытого потока, нужно использовать предназначенный для этого FileOutputStream .
Как обновить файл. Практика
Ниже представлен пример программы, показывающий в работе каждый из рассмотренных способов добавить в файл (обновить файл) на Java:
Мне нужно повторно добавить текст в существующий файл на Java. Как это сделать?
30 ответов
Выполняете ли вы это для ведения журнала? Если это так, несколько библиотек для этого . Двумя наиболее популярными являются Log4j и Logback .
Java 7 +
Если вам просто нужно сделать это один раз, Класс файлов упрощает:
Осторожно . Вышеупомянутый подход будет вызывать NoSuchFileException , если файл еще не существует. Он также не добавляет новую строку автоматически (которую вы часто хотите при добавлении к текстовому файлу). ответ Стив Чамберса описывает, как вы могли это сделать с классом Files .
Однако, если вы будете писать в один и тот же файл много раз, вышесказанное должно многократно открывать и закрывать файл на диске, что является медленной операцией. В этом случае буферный писатель лучше:
- Второй параметр конструктора FileWriter скажет ему добавить файл, а не писать новый файл. (Если файл не существует, он будет создан.)
- Использование BufferedWriter рекомендуется для дорогого автора (например, FileWriter ).
- Использование PrintWriter дает вам доступ к синтаксису println , к которому вы, вероятно, привыкли, из System.out .
- Но обертки BufferedWriter и PrintWriter не являются строго необходимыми.
Старая Java
Обработка исключений
Если вам нужна надежная обработка исключений для более старой Java, она становится очень многословной:
Есть текстовый файл, в котором уже хранится какая-то информация.
Как дописать в файл данные, если метод write класса FileWritter затирает старые данные и пишет новые?
2 ответа 2
Метод 1:
Один из вариантов — использовать метод write класса Files:
Метод 2:
Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.
Parameters:
fileName — String The system-dependent filename.
append — boolean if true, then data will be written to the end of the file rather than the beginning.
Не то?
Всё ещё ищете ответ? Посмотрите другие вопросы с метками java или задайте свой вопрос.
Связанные
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459
Источник: