Как удалить содержимое файла

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

1. Использование конструктора PrintWriter

PrintWiter используется для записи форматированных строк в поток вывода текста.

Конструктор PrintWriter(file) создает новый PrintWriter с указанным параметром файла. Если файл существует, то он будет обрезан до нулевого размера; в противном случае будет создан новый файл.

File file = new File("/path/file");try(PrintWriter pw = new PrintWriter(file)){//Any more operations if required} catch(FileNotFoundException e) {e.printStackTrace();}

2. Использование конструктора FileWriter

FileWeite также используется для записи текста в символьные файлы. Подобно PrintWriter, конструктор FileWriter также очищает файл, если файл не был открыт для операции добавления.

В данном примере второй параметр false указывает на режим добавления. Если true, то байты будут записаны в конец файла, а не в начало.

File file = new File("/path/file");try(FileWriter fw = new FileWriter(file)){//Any more operations if required} catch(IOException e) {e.printStackTrace();}

3. Использование RandomAccessFile

Файл с произвольным доступом ведет себя как большой массив байтов, хранящихся в файловой системе. Мы можем использовать его метод setLength(), чтобы очистить файл.

try(RandomAccessFile raf = new RandomAccessFile(file, "rw")){raf.setLength(0);} catch(FileNotFoundException e) {e.printStackTrace();} catch(IOException e) {e.printStackTrace();}

4. Использование Files.newBufferedWriter() от NIO

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

try(BufferedWriter writer = Files.newBufferedWriter(file.toPath())){writer.write("");writer.flush();} catch(IOException e) {e.printStackTrace();} 

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

Класс FileUtils можно использовать для записи пустой строки в файл, что фактически удаляет все содержимое файла.

File file = new File("/path/file");try{FileUtils.write(file, "", StandardCharsets.UTF_8);} catch(IOException e) {e.printStackTrace();}

Включите последнюю версию библиотеки Commons IO из Maven.

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version></dependency>

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

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

Мы научились использовать PrintWriter, FileWriter Java IO, класс Files NIO и класс FileUtils Commons IO для очистки файла.

Исходный код на Github

Прокрутить вверх