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