Как удалить содержимое текстового файла без удаления

Я хочу скопировать содержимое файла 'A' в файл 'B'. после завершения копирования я хочу очистить содержимое файла "A" и хочу написать на нем с самого начала. Я не могу удалить файл "A", поскольку он связан с какой-то другой задачей.

Мне удалось скопировать содержимое с помощью java файла API (readLine()), но не знаю, как очистить содержимое файла и установить указатель файла на начало файла.

Ответ 1

Просто напечатайте пустую строку в файле:

PrintWriter writer = new PrintWriter(file);
writer.print("");
writer.close();

Ответ 2

Я не верю, что вам даже нужно написать пустую строку в файл.

PrintWriter pw = new PrintWriter("filepath.txt");
pw.close();

Ответ 3

Вы хотите метод setLength() в классе RandomAccessFile.

Ответ 4

Просто, ничего не пишите!

FileOutputStream writer = new FileOutputStream("file.txt");
writer.write(("").getBytes());
writer.close();

Ответ 5

Один вкладыш для выполнения операции усечения:

FileChannel.open(Paths.get("/home/user/file/to/truncate"), StandardOpenOption.WRITE).truncate(0).close();

Дополнительная информация доступна в документации по Java: https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html

Ответ 6

После копирования из A в B открыть файл A еще раз, чтобы записать режим, а затем записать в него пустую строку

Ответ 7

Просто напишите:

FileOutputStream writer = new FileOutputStream("file.txt");

Ответ 8

Как насчет ниже:

File temp = new File("<your file name>");
if (temp.exists()) {
    RandomAccessFile raf = new RandomAccessFile(temp, "rw");
    raf.setLength(0);
}

Ответ 9

Один из лучших компаньонов для java - Apache Projects и, пожалуйста, обратитесь к нему. Для работы с файлами вы можете обратиться к проекту Commons IO.

Ниже один код строки поможет нам сделать файл пустым.

FileUtils.write(new File("/your/file/path"), "")

Ответ 10

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

Ответ 11

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

new FileWriter("/path/to/your/file.txt").close();

Ответ 12

Вы можете использовать

FileWriter fw = new FileWriter(/*your file path*/);
PrintWriter pw = new PrintWriter(fw);
pw.write("");
pw.flush(); 
pw.close();

Не забудьте использовать

FileWriter fw = new FileWriter(/*your file path*/,true);

True в конструкторе конструктора позволяет добавлять.

Ответ 13

FileOutputStream fos = openFileOutput("/*file name like --> one.txt*/", MODE_PRIVATE);
FileWriter fw = new FileWriter(fos.getFD());
fw.write("");

Ответ 14

С Try-with-Resources Writer будет автоматически закрыт:

import org.apache.commons.lang3.StringUtils;
final File file = new File("SomeFile");
try (PrintWriter writer = new PrintWriter(file))  {
    writer.print(StringUtils.EMPTY);                
}
// here we can be sure that writer will be closed automatically

Ответ 15

используя: Новая библиотека Java 7 NIO, попробуйте

        if(!Files.exists(filePath.getParent())) {
            Files.createDirectory(filePath.getParent());
        }
        if(!Files.exists(filePath)) {
            Files.createFile(filePath);
        }
        // Empty the file content
        writer = Files.newBufferedWriter(filePath);
        writer.write("");
        writer.flush();

Приведенный выше код проверяет, существует ли Directoty, если не создает каталог, проверяет, существует ли файл, да, он записывает пустую строку и очищает буфер, в конце вы получаете средство записи, указывающее на пустой файл

Ответ 16

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

Ответ 17

вы можете написать общий метод, поскольку (его слишком поздно, но ниже код поможет вам/другим)

public static FileInputStream getFile(File fileImport) throws IOException {
      FileInputStream fileStream = null;
    try {
        PrintWriter writer = new PrintWriter(fileImport);
        writer.print(StringUtils.EMPTY);
        fileStream = new FileInputStream(fileImport);
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            writer.close();
        }
         return fileStream;
}