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

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

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

Solutions Collecting From Web of "Как удалить содержимое текстового файла без удаления"

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

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

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

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

Вам нужен метод setLength () в классе RandomAccessFile.

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

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

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

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

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

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

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

Просто пиши:

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

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

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

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

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

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

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

 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); 

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

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

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

FileOutputStream fos = openFileOutput ("/ имя файла как -> one.txt /", MODE_PRIVATE); FileWriter fw = new FileWriter (fos.getFD ()); fw.write ( "");

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

 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; }