Saya ingin menyalin konten file 'A' ke file 'B'. setelah penyalinan selesai saya ingin menghapus isi file 'A' dan ingin menulis di atasnya dari awal. Saya tidak dapat menghapus file 'A' karena terkait dengan beberapa tugas lain.
Saya dapat menyalin konten menggunakan API file java (readLine ()), tetapi tidak tahu cara menghapus konten file dan mengatur penunjuk file ke awal file.
Saya tidak percaya Anda bahkan harus menulis string kosong ke file.
PrintWriter pw = new PrintWriter("filepath.txt"); pw.close();
sumber
new PrintWriter("filepath.txt").close();
?Anda ingin metode setLength () di kelas RandomAccessFile.
sumber
Sederhana, tidak tulis apa-apa!
FileOutputStream writer = new FileOutputStream("file.txt"); writer.write(("").getBytes()); writer.close();
sumber
Satu liner untuk melakukan operasi truncate:
FileChannel.open(Paths.get("/home/user/file/to/truncate"), StandardOpenOption.WRITE).truncate(0).close();
Informasi lebih lanjut tersedia di Dokumentasi Java: https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html
sumber
Bagaimana dengan dibawah ini:
File temp = new File("<your file name>"); if (temp.exists()) { RandomAccessFile raf = new RandomAccessFile(temp, "rw"); raf.setLength(0); }
sumber
Setelah menyalin dari A ke B buka file A lagi ke mode tulis dan kemudian tulis string kosong di dalamnya
sumber
Salah satu pendamping terbaik untuk java adalah Proyek Apache dan silakan merujuk ke sana. Untuk operasi terkait file, Anda dapat merujuk ke proyek Commons IO .
Kode baris di bawah ini akan membantu kita mengosongkan file.
FileUtils.write(new File("/your/file/path"), "")
sumber
Tulis saja:
FileOutputStream writer = new FileOutputStream("file.txt");
sumber
Tulis string kosong ke file, flush, dan close. Pastikan bahwa penulis file tidak dalam mode append. Saya pikir itu harus melakukan trik.
sumber
Jika Anda tidak perlu menggunakan penulis setelahnya, cara terpendek dan terbersih untuk melakukannya adalah seperti itu:
new FileWriter("/path/to/your/file.txt").close();
sumber
menggunakan: Pustaka Java 7 NIO baru, coba
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();
Kode di atas memeriksa apakah Directoty ada jika tidak membuat direktori, memeriksa apakah file ada ya itu menulis string kosong dan membersihkan buffer, pada akhirnya Anda membuat penulis menunjuk ke file kosong
sumber
Kamu bisa memakai
FileWriter fw = new FileWriter(/*your file path*/); PrintWriter pw = new PrintWriter(fw); pw.write(""); pw.flush(); pw.close();
Ingatlah untuk tidak menggunakan
FileWriter fw = new FileWriter(/*your file path*/,true);
True dalam pembuat file, konstruktor akan mengaktifkan append.
sumber
FileOutputStream fos = openFileOutput("/*file name like --> one.txt*/", MODE_PRIVATE); FileWriter fw = new FileWriter(fos.getFD()); fw.write("");
sumber
Dengan try-with-resources, penulis akan ditutup secara otomatis:
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
sumber
Yang harus Anda lakukan adalah membuka file dalam mode truncate. Semua kelas keluar file Java akan secara otomatis melakukannya untuk Anda.
sumber
Anda dapat menulis metode umum sebagai (sudah terlambat tetapi kode di bawah ini akan membantu Anda / orang lain)
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; }
sumber