Je veux copier le contenu du fichier 'A' dans le fichier 'B' ..___ une fois la copie terminée, je veux effacer le contenu du fichier 'A' et je veux écrire dessus depuis son début ..__ impossible de 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 de Java (readLine ()), mais je ne sais pas comment effacer le contenu du fichier et définir le pointeur de fichier sur le début du fichier.
Il suffit d’imprimer 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();
Une doublure pour effectuer une opération tronquée:
FileChannel.open(Paths.get("/home/user/file/to/truncate"), StandardOpenOption.WRITE).truncate(0).close();
Pour plus d'informations, consultez la documentation Java: https://docs.Oracle.com/javase/7/docs/api/Java/nio/channels/FileChannel.html
Que diriez-vous ci-dessous:
File temp = new File("<your file name>");
if (temp.exists()) {
RandomAccessFile raf = new RandomAccessFile(temp, "rw");
raf.setLength(0);
}
Après avoir copié de A à B, ouvrez à nouveau le fichier A en mode écriture, puis écrivez une chaîne vide dans celui-ci.
Un des meilleurs compagnons pour Java est Apache Projects et veuillez vous y reporter. Pour les opérations liées aux fichiers, vous pouvez vous référer au projet Commons IO .
Le code ci-dessous d’une ligne nous aidera à vider le fichier.
FileUtils.write(new File("/your/file/path"), "")
Ecrivez:
FileOutputStream writer = new FileOutputStream("file.txt");
Ecrivez une chaîne vide dans le fichier, videz et fermez. Assurez-vous que le rédacteur de fichier n'est pas en mode ajout. Je pense que cela devrait faire l'affaire.
Si vous n’avez pas besoin d’utiliser ensuite le scripteur, la méthode la plus simple et la plus propre est la suivante:
new FileWriter("/path/to/your/file.txt").close();
Avec try-with-resources writer sera automatiquement fermé:
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
Tout ce que vous avez à faire est d'ouvrir le fichier en mode tronqué. Toute classe de fichier Java sur fera automatiquement cela pour vous.
FileOutputStream fos = openFileOutput("/*file name like --> one.txt*/", MODE_PRIVATE);
FileWriter fw = new FileWriter(fos.getFD());
fw.write("");
using: New Java 7 NIO library, 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 sinon crée le répertoire, vérifie si le fichier existe est oui, il écrit la chaîne vide et vide le tampon, à la fin vous obtenez le rédacteur pointant sur le fichier vide
Vous pouvez utiliser
FileWriter fw = new FileWriter(/*your file path*/);
PrintWriter pw = new PrintWriter(fw);
pw.write("");
pw.flush();
pw.close();
Rappelez-vous de ne pas utiliser
FileWriter fw = new FileWriter(/*your file path*/,true);
True dans le constructeur de filewriter permettra d’ajouter.