comment supprimer le contenu d’un fichier texte sans se supprimer

Je souhaite copier le contenu du fichier ‘A’ dans le fichier ‘B’. Après la copie, je veux effacer le contenu du fichier ‘A’ et vouloir y écrire depuis le début. Je ne peux pas supprimer le fichier ‘A’ car il est lié à une autre tâche.

J’ai pu copier le contenu à l’aide de l’API de fichier java (readLine ()), mais je ne sais pas comment effacer le contenu du fichier et définir le pointeur de fichier au début du fichier.

Imprimez simplement une chaîne vide dans le fichier:

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

Je ne crois pas que vous deviez même écrire une chaîne vide dans le fichier.

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

Vous voulez la méthode setLength () dans la classe RandomAccessFile.

Simple, n’écris rien!

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

Un liner pour rendre l’opération tronquée:

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

Plus d’informations disponibles sur Java Documentation: https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html

Après avoir copié de A à B, ouvrez à nouveau le fichier A pour écrire en mode puis écrivez une chaîne vide

Qu’en est-il ci-dessous:

 File temp = new File(""); if (temp.exists()) { RandomAccessFile raf = new RandomAccessFile(temp, "rw"); raf.setLength(0); } 

Apache Projects est l’un des meilleurs compagnons de Java et veuillez vous y reporter. Pour l’opération liée au fichier, vous pouvez vous référer au projet Commons IO .

Le code de ligne ci-dessous nous aidera à rendre le fichier vide.

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

Écrivez une chaîne vide dans le fichier, vider et fermer. Assurez-vous que le graveur de fichiers n’est pas en mode Ajout. Je pense que ça devrait faire l’affaire.

Ecrivez:

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

Si vous n’avez pas besoin d’utiliser l’écrivain par la suite, la manière la plus courte et la plus propre de procéder serait la suivante:

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

Vous pouvez utiliser

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

N’oubliez pas de ne pas utiliser

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

True dans le constructeur du graveur de fichiers activera append.

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

Avec try-with-resources écrivain sera automatiquement fermé:

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

en utilisant: Nouvelle bibliothèque Java 7 NIO, essayez

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

Le code ci-dessus vérifie si Directoty existe s’il ne crée pas le répertoire, vérifie si le fichier existe est oui il écrit une chaîne vide et vide le tampon, à la fin, vous obtenez le pointeur vers un fichier vide

vous pouvez écrire une méthode générique comme (c’est trop tard mais le code ci-dessous vous aidera / aidera les autres)

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