Meilleure façon d'écrire des octets au milieu d'un fichier en Java
Question
Quel est le meilleur moyen d'écrire des octets au milieu d'un fichier en utilisant Java?
La solution
Lire et écrire au milieu d'un fichier est aussi simple que d'utiliser un RandomAccessFile
en Java.
RandomAccessFile
, malgré son nom, ressemble plus à un InputStream
et à OutputStream
et moins à un Fichier
. Il vous permet de lire ou de rechercher octets
dans un fichier, puis de commencer à écrire sur les octets auxquels vous souhaitez vous arrêter.
Une fois que vous avez découvert cette classe, il est très facile à utiliser si vous avez une compréhension de base des entrées / sorties de fichiers standard.
Un petit exemple:
public static void aMethod(){
RandomAccessFile f = new RandomAccessFile(new File("whereDidIPutTHatFile"), "rw");
long aPositionWhereIWantToGo = 99;
f.seek(aPositionWhereIWantToGo); // this basically reads n bytes in the file
f.write("Im in teh fil, writn bites".getBytes());
f.close();
}
Autres conseils
Utiliser RandomAccessFile
Ouvrez le fichier en mode écriture sans le tronquer, recherchez le décalage souhaité et écrivez les données souhaitées. Faites attention au mode texte / binaire.