Effacer des caractères d'un .txt en Java ?

Résolu/Fermé
Hello_2021 Messages postés 357 Date d'inscription mercredi 3 novembre 2021 Statut Membre Dernière intervention 9 décembre 2023 - 14 févr. 2022 à 15:02
Hello_2021 Messages postés 357 Date d'inscription mercredi 3 novembre 2021 Statut Membre Dernière intervention 9 décembre 2023 - 14 févr. 2022 à 17:16
Bonjour, j'ai une question sur Java ^^

Est-il possible, dans un code en Java, d'effacer des caractères d'un fichier texte, ou de tronquer un fichier texte à partir d'un certain endroit pour effacer la suite ? Si oui, comment peut-on faire cela ? J'avais vu quelque part que l'on pouvait utiliser truncate de FileConnection, mais je ne sais pas comment importer ce package…

Merci par avance, bonne journée ! :-)
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
14 févr. 2022 à 16:04
Bonjour,

Un fichier est une suite d'octets écrits les uns derrière les autres sur le disque (éventuellement fragmenté par le système).

Tu peux ajouter ou supprimer des valeurs uniquement à la fin du fichier, car manipuler le début ou le milieu du fichier nécessiterait de décaler tous les octets suivants ce qui reviendrait à réécrire tout le fichier à chaque opération.
En revanche tu peux changer un octet par un autre à n'importe quel autre endroit du fichier à condition de connaître sa position dans le fichier.

Tu peux utiliser la classe RandomAccessFile pour des opérations de base et éventuellement sa méthode getChannel pour des opérations avancées via la classe FileChannel
0
Hello_2021 Messages postés 357 Date d'inscription mercredi 3 novembre 2021 Statut Membre Dernière intervention 9 décembre 2023 1
14 févr. 2022 à 17:16
Merci pour ta réponse ! En regardant dans tes liens je suis tombé sur cette fonction setLenght qui permet de modifier la taille du fichier, et si l'argument de setLenght est plus petit que la taille actuelle du fichier, ce dernier est tronqué et c'est justement ce que je voulais faire ^^

Encore merci !

Bonne fin d'après-midi,
0