как удалить содержимое текстового файла без удаления самого себя
Я хочу, чтобы скопировать содержимое файла в файл "Б". после завершения копирования я хочу очистить содержимое файла ' A ' и хочу написать на нем с самого начала. Я не могу удалить файл 'A', поскольку он связан с какой-то другой задачей.
Я смог скопировать содержимое с помощью Java file API (readLine ()), но не знаю, как очистить содержимое файла и установить указатель файла в начало файла.
16 ответов:
просто выведите пустую строку в файл:
PrintWriter writer = new PrintWriter(file); writer.print(""); writer.close();
Я не верю, что ты даже написать пустую строку в файл.
PrintWriter pw = new PrintWriter("filepath.txt"); pw.close();
просто, ничего не пиши!
FileOutputStream writer = new FileOutputStream("file.txt"); writer.write(("").getBytes()); writer.close();
один вкладыш для выполнения операции усечения:
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
после копирования из A В B откройте файл A снова в режиме записи, а затем напишите в нем пустую строку
Как насчет ниже:
File temp = new File("<your file name>"); if (temp.exists()) { RandomAccessFile raf = new RandomAccessFile(temp, "rw"); raf.setLength(0); }
одним из лучших компаньонов для java является Проекты Apache и, пожалуйста, обратитесь к нему. Для операции, связанной с файлом, вы можете обратиться к Commons IO.
приведенный ниже код одной строки поможет нам сделать файл пустым.
FileUtils.write(new File("/your/file/path"), "")
записать пустую строку в файл, сбросить и закрыть. Убедитесь, что средство записи файлов не находится в режиме добавления. Я думаю, что это должно сделать трюк.
Если вам не нужно использовать писатель впоследствии самый короткий и самый чистый способ сделать это было бы так:
new FileWriter("/path/to/your/file.txt").close();
можно использовать
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 в конструкторе filewriter позволит добавить.
FileOutputStream fos = openFileOutput("/*file name like --> one.txt*/", MODE_PRIVATE); FileWriter fw = new FileWriter(fos.getFD()); fw.write("");
С 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
использование: новая библиотека 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, если не создает каталог, проверяет, существует ли файл, да он записывает пустую строку и очищает буфер, в конце концов yo получает писатель, указывающий на пустой файл
вы можете написать общий метод (его слишком поздно, но ниже код поможет вам/другим)
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; }