Рубрики
Без рубрики

Удалить содержимое файла на Java

Узнайте различные способы удаления содержимого файла без удаления файла.

Автор оригинала: baeldung.

1. Введение

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

2. Использование PrintWriter

Ява РаспечататьПисач класс расширяет Писатель класс. Он печатает отформатированную представление объектов в потоке текстового вывода.

Мы выполнить простой тест. Давайте создадим РаспечататьПисач например, указывая на существующий файл, удаляя существующее содержимое файла, просто закрывая его, а затем убедитесь, что длина файла пуста:

new PrintWriter(FILE_PATH).close();
assertEquals(0, StreamUtils.getStringFromInputStream(new FileInputStream(FILE_PATH)).length());

Кроме того, обратите внимание, что если нам не нужна РаспечататьПисач объект для дальнейшей обработки, это лучший вариант. Однако, если нам нужна РаспечататьПисач объект для дальнейших операций файла, мы можем сделать это по-другому:

PrintWriter writer = new PrintWriter(FILE_PATH);
writer.print("");
// other operations
writer.close();

3. Использование Файлрайтер

Ява ФайлРайтер является стандартным классом Java IO API, который предоставляет методы записи данных, ориентированных на характер, в файл.

Давайте теперь посмотрим, как мы можем сделать ту же операцию с помощью ФайлРайтер:

new FileWriter(FILE_PATH, false).close();

Точно так же, если нам нужна ФайлРайтер объект для дальнейшей обработки, мы можем назначить его переменной и обновить с пустой строкой.

4. Использование FileOutputStream

FileOutputStream Java — это выходной поток, используемый для записи данных byte в файл.

Теперь давайте удалим содержимое файла с помощью FileOutputStream:

new FileOutputStream(FILE_PATH).close();

5. Использование Apache Commons IO FileUtils

ИО- Apache Commons это библиотека, которая содержит классы утилиты, чтобы помочь с общими проблемами IO. Мы можем удалить содержимое файла с помощью одного из его классов утилиты – ФилеУтилс.

Чтобы увидеть, как это работает, давайте добавим ИО- Apache Commons зависимость от нашей пом.xml :


    commons-io
    commons-io
    2.8.0

После этого возьмем быстрый пример, демонстрирующий удаление содержимого файла:

FileUtils.write(new File(FILE_PATH), "", Charset.defaultCharset());

6. Использование файлов Java NIO

Мы также можем удалить содержимое файла с помощью java.nio.file.Files :

BufferedWriter writer = Files.newBufferedWriter(Paths.get(FILE_PATH));
writer.write("");
writer.flush();

7. Использование Java NIO FileChannel

Java NIO FileChannel — это реализация NIO для подключения файла. Он также дополняет стандартный пакет Java IO.

Мы также можем удалить содержимое файла с помощью java.nio.channels.FileChannel :

FileChannel.open(Paths.get(FILE_PATH), StandardOpenOption.WRITE).truncate(0).close();

8. Использование Гуавы

Guava — это библиотека с открытым исходным кодом на основе Java, которая предоставляет полезные методы для ведения операций в i/O. Давайте посмотрим, как использовать API Guava для удаления содержимого файла.

Во-первых, мы должны добавить Гуава зависимости в нашей пом.xml :


    com.google.guava
    guava
    22.0

После этого рассмотрим быстрый пример удаления содержимого файла с помощью Guava:

File file = new File(FILE_PATH);
byte[] empty = new byte[0];
com.google.common.io.Files.write(empty, file);

9. Заключение

Подводя итог, мы видели несколько способов удаления содержимого файла без удаления самого файла.

Полную реализацию этого учебника можно найти более на GitHub .