2008-10-08 12 views

Répondre

20

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 File. Il vous permet de lire ou de chercher à travers bytes dans un fichier, puis de commencer à écrire sur les octets que vous souhaitez 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 fichiers d'entrée/sortie 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(); 
} 
+0

et si je ne connais pas la position ou si j'ai des centaines de fichiers où je dois insérer des données au milieu d'eux après un texte spécifié? – VENKI

+0

Si vous ne connaissez pas la position, alors vous devez ouvrir le fichier et le lire pour trouver où vous devez écrire. – jjnguy

+1

mon "fichier.txt" contient un texte comme celui-ci "salut comment vous (nouvelle ligne) je vais bien merci" maintenant je veux insérer "sont" au milieu du texte ce que je dois faire? en faisant cela s'il vous plaît noter que nous travaillons avec une grande quantité de fichiers de taille – VENKI

6

Utilisez RandomAccessFile

+0

Le tutoriel lié à ne mentionne pas vraiment la classe RandomAccessFile. Peut-être que celui-ci à la place: http://tutorials.jenkov.com/java-io/randomaccessfile.html – AndrewR

0

Ouvrez le fichier en mode écriture sans le tronquer, cherchent à le décalage désiré et écrire les données souhaitées. Faites juste attention au mode texte/binaire.