¿Puedo escribir al final de un archivo de 5 GB en Java? Esta pregunta surgió en mi oficina y nadie está seguro de cuál es la respuesta.¿Puedo escribir al final de un archivo de 5 GB en Java?
Respuesta
Esto debería ser posible con bastante facilidad usando RandomAccessFile. Algo como lo siguiente debería funcionar:
String filename;
RandomAccessFile myFile = new RandomAccessFile(filename, "rw");
// Set write pointer to the end of the file
myFile.seek(myFile.length());
// Write to end of file here
Sí. Echar un vistazo a este enlace RandomAccessFile
http://java.sun.com/javase/6/docs/api/java/io/RandomAccessFile.html#seek(long)
Es decir, se abre el archivo, y luego ajustar la posición hasta el final del archivo. Y comienza a escribir desde allí.
Cuéntanos cómo te fue.
5GB? Me pregunto si el sistema operativo es un problema mayor, pero eso es dudoso.
En teoría, puede simplemente abrir el archivo en el modo de agregar.
OutputStream in = new java.io.FileOutputStream(fileName, true);
y escriba hasta que el sistema de archivos se llene.
Ver Bill the Lizard para datos de char.
Si usted acaba de decir que usted necesita para anexar al archivo, echa un vistazo al constructor
FileWriter(File file, boolean append)
en la clase FileWriter.
Lo siento, no tengo un archivo de 5GB para probar. :)
En realidad eso dependería del sistema de archivos subyacente y de cómo la JVM en esa plataforma implementa el flujo de archivos. Porque, si un archivo es más grande que 5GB, no se puede, con un sistema operativo de 32 bits, abrir todo el archivo y simplemente escribir en él, debido a las cosas de límite de 4,3 mil millones (32^2).
Por lo tanto, la respuesta breve sería, Sí, es posible, si Java maneja el archivo correctamente y el sistema de archivos es una buena idea :)
- 1. Escribir al final de un xml
- 2. Escribir una cadena al final de un archivo (C++)
- 3. Acceso de Java al archivo grande
- 4. Escribiendo al final de un archivo a través de opencsv
- 5. Escribiendo al final del archivo
- 6. Delphi Pascal: cómo escribir datos en un archivo de más de 2 GB?
- 7. ¿Cómo escribir un cliente Java para acceder al archivo WSDL?
- 8. UnicodeEncodeError al escribir en un archivo
- 9. Escribir en un archivo XML en Java
- 10. ¿Cómo puedo subir archivos de más de 5 GB a Amazon S3?
- 11. ¿Cómo puedo escribir un GEOTIFF en Java?
- 12. Crear ruta completa automáticamente al escribir en un nuevo archivo
- 13. Adjuntar al final de un archivo con NSMutableString
- 14. Especificando .aspx al final de un archivo css?
- 15. Codificación :: UndefinedConversionError al escribir un archivo binario
- 16. Formato de tamaño de archivo como MB, GB, etc.
- 17. Escribir un archivo descargado binario en un disco en Java
- 18. ¿Cómo ganar el control de un montón de 5 GB en Haskell?
- 19. JAVA: leer y escribir un archivo juntos
- 20. ¿Cómo puedo hacer una copia de seguridad de un repositorio SVN de 13 GB? El volcado es 100+ GB
- 21. ¿Cómo puedo leer/escribir bits de/en un archivo en Java?
- 22. ¿Por qué tiene que poner un 1; al final de un módulo Perl 5?
- 23. Excepción FileNotFound al intentar escribir en un archivo
- 24. C anomalía extraña, al escribir en un archivo (funciona normalmente al escribir en stdout)
- 25. Silverlight 5 Fecha de lanzamiento final
- 26. espacios Eliminación al final de una cadena en Java
- 27. ¿Cómo puedo escribir un archivo WAV desde una matriz de bytes en Java?
- 28. Escribir archivo HTML con Java
- 29. java.lang.ClassFormatError: bytes adicionales al final del archivo de clase
- 30. Escribiendo al comienzo de un archivo de texto Java
for (int i = 0; i <5000000000; i ++) file.write (""); (Sí, sé que probablemente llevaría un tiempo, pero el comentario sobre no tener el archivo de 5gb era divertido en contexto) –
esto debería conseguir un archivo de 5 gb bastante rápido: dd if =/dev/zero of = count de foobar = 5242880 bs = 1024 – rmeador
o para NTFS: archivo fsutil createnew 5gb.bin 5000000000 – Guge