2008-10-08 8 views

Antwort

20

Lesen und Schreiben in der Mitte einer Datei ist so einfach wie mit einem RandomAccessFile in Java.

RandomAccessFile, trotz seines Namens, ist eher wie ein InputStream und OutputStream und weniger wie ein File. Es ermöglicht Ihnen, bytes in einer Datei zu lesen oder zu suchen und dann mit dem Schreiben der Bytes zu beginnen, die Sie stoppen möchten.

Sobald Sie diese Klasse entdecken, ist es sehr einfach zu verwenden, wenn Sie ein grundlegendes Verständnis der regulären Datei-I/O haben.

Ein kleines Beispiel:

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

was ist, wenn ich nicht die Position kenne oder wenn ich Hunderte von Dateien habe, wo ich Daten in der Mitte von ihnen nach einfügen muss ein bestimmter Text? – VENKI

+0

Wenn Sie die Position nicht kennen, müssen Sie die Datei öffnen und sie lesen, um zu finden, wo Sie schreiben müssen. – jjnguy

+1

meine "file.txt" enthält Text wie diesen "Hi wie geht es dir (newline) Mir geht es gut danke" jetzt möchte ich einfügen "sind" in der Mitte des Textes, was ich tun muss? Beachten Sie dabei bitte, dass wir mit einer großen Anzahl an großen Dateien arbeiten. – VENKI

6

Verwenden RandomAccessFile

+0

Das Tutorial verknüpft eigentlich nicht die Klasse Random erwähnen. Vielleicht dieses eine stattdessen: http://tutorials.jenkov.com/java-io/randomaccessfile.html – AndrewR

0

Öffnen Sie die Datei im Schreibmodus, ohne sie abzuschneiden, versuchen, die gewünschte Verschiebung, und schreiben Sie die gewünschten Daten. Seien Sie vorsichtig im Text/Binär-Modus.