2008-10-08 10 views

Respuesta

20

Leer y escribir en el medio de un archivo es tan simple como usar un RandomAccessFile en Java.

RandomAccessFile, a pesar de su nombre, es más como un InputStream y OutputStream y menos como un File. Le permite leer o buscar a través del archivo bytes y luego comenzar a escribir sobre los bytes que desea detener.

Una vez que descubra esta clase, es muy fácil de usar si tiene una comprensión básica de la E/S de archivos normal.

Un pequeño ejemplo:

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

¿Qué pasa si no conozco la posición o si tengo cientos de archivos donde tengo que insertar datos en el medio de ellos después de algún texto especificado? – VENKI

+0

Si no conoce la posición, necesita abrir el archivo y leerlo para encontrar dónde debe escribir. – jjnguy

+1

mi "archivo.txt" contiene texto como este "hola cómo estás (nueva línea) estoy bien gracias" ahora quiero insertar "son" en el medio del texto lo que tengo que hacer? Al hacerlo, tenga en cuenta que estamos trabajando con una gran cantidad de archivos de tamaño – VENKI

6

Uso RandomAccessFile

+0

El tutorial relacionado con en realidad no hablar de la clase RandomAccessFile. Tal vez este en su lugar: http://tutorials.jenkov.com/java-io/randomaccessfile.html – AndrewR

0

Abrir el archivo en modo de escritura sin truncar ella, buscan el desplazamiento deseado, y escribir los datos deseados. Solo ten cuidado con el modo texto/binario.

Cuestiones relacionadas