Leer y escribir archivos en java

Escribir en un archivo en java

Si ya tiene el contenido que desea escribir en el archivo (y no generado sobre la marcha), la adición java.nio.file.Files en Java 7 como parte de la E/S nativa proporciona la forma más sencilla y eficiente de lograr sus objetivos.

Dado que el autor no especificó si requiere una solución para las versiones de Java que han sido EoL’d (tanto por Sun como por IBM, y éstas son técnicamente las JVM más extendidas), y debido al hecho de que la mayoría de la gente parece haber respondido a la pregunta del autor antes de que se especificara que se trata de un archivo de texto (no binario), he decidido proporcionar mi respuesta.

En primer lugar, Java 6 ha llegado en general al final de su vida útil, y dado que el autor no especificó que necesita compatibilidad de legado, supongo que significa automáticamente Java 7 o superior (Java 7 aún no es EoL’d por IBM). Por lo tanto, podemos ver directamente el tutorial de E/S de archivos: https://docs.oracle.com/javase/tutorial/essential/io/legacy.html

Java 7 introduce una nueva forma de trabajar con el sistema de archivos, junto con una nueva clase de utilidad – Archivos. Usando la clase Files, podemos crear, mover, copiar, borrar archivos y directorios; también se puede usar para leer y escribir en un archivo.

Leer y escribir archivos en java usando bufferedreader

Si ya tienes el contenido que quieres escribir en el archivo (y no se genera sobre la marcha), la adición java.nio.file.Files en Java 7 como parte de la E/S nativa proporciona la forma más sencilla y eficiente de lograr tus objetivos.

->  Porque mi laptop no reconoce mi celular

Dado que el autor no especificó si requiere una solución para las versiones de Java que han sido EoL’d (tanto por Sun como por IBM, y éstas son técnicamente las JVM más extendidas), y debido al hecho de que la mayoría de la gente parece haber respondido a la pregunta del autor antes de que se especificara que se trata de un archivo de texto (no binario), he decidido proporcionar mi respuesta.

En primer lugar, Java 6 ha llegado en general al final de su vida útil, y dado que el autor no especificó que necesita compatibilidad de legado, supongo que significa automáticamente Java 7 o superior (Java 7 aún no es EoL’d por IBM). Por lo tanto, podemos ver directamente el tutorial de E/S de archivos: https://docs.oracle.com/javase/tutorial/essential/io/legacy.html

Java 7 introduce una nueva forma de trabajar con el sistema de archivos, junto con una nueva clase de utilidad – Archivos. Usando la clase Files, podemos crear, mover, copiar, borrar archivos y directorios; también se puede usar para leer y escribir en un archivo.

Cómo crear un archivo en java

Las instancias de esta clase soportan tanto la lectura como la escritura en un archivo de acceso aleatorio. Un archivo de acceso aleatorio se comporta como una gran matriz de bytes almacenada en el sistema de archivos. Hay una especie de cursor, o índice en la matriz implícita, llamado puntero de archivo; las operaciones de entrada leen bytes empezando en el puntero de archivo y avanzan el puntero de archivo más allá de los bytes leídos. Si el archivo de acceso aleatorio se crea en modo de lectura/escritura, entonces las operaciones de salida también están disponibles; las operaciones de salida escriben bytes comenzando en el puntero del archivo y avanzan el puntero del archivo más allá de los bytes escritos. Las operaciones de salida que escriben más allá del final actual de la matriz implícita hacen que la matriz se extienda. El puntero del archivo puede ser leído por el método getFilePointer y establecido por el método seek.

->  Que es red local

Dicho esto, ya que los archivos de texto son un formato de archivo secuencial, no se puede reemplazar una línea con una línea de una longitud diferente sin mover todos los caracteres subsiguientes, por lo que reemplazar líneas equivaldrá en general a leer y escribir todo el archivo. Esto puede ser más fácil de lograr si escribe en un archivo separado, y renombra el archivo de salida una vez que haya terminado. Esto también es más robusto en caso de que algo salga mal, ya que uno puede simplemente reintentar con el contenido del archivo inicial. La única ventaja de RandomAccessFile es que no se necesita el espacio de disco para el archivo de salida temporal, y puede obtener un ligero mejor rendimiento del disco debido a una mejor localidad de acceso.

Escribir en un archivo java línea por línea

La antigua API de archivos se utiliza en un montón de proyectos, frameworks y bibliotecas antiguos. A pesar de su antigüedad, no está obsoleta (y probablemente nunca lo estará) y puedes seguir utilizándola con cualquiera de las últimas versiones de Java.

Por las razones mencionadas anteriormente, si usted está comenzando un nuevo proyecto Java, es muy recomendable utilizar la API de rutas sobre la API de archivos. (Aunque archivo se lee mucho mejor que ruta, ¿no?)

->  Como adivinar contraseña de facebook

Para trabajar con archivos en Java, primero necesitas una referencia a un archivo (¡gran sorpresa!). Como acabamos de mencionar, a partir de Java 7, se utiliza la API de rutas para referenciar archivos, por lo que todo comienza con la construcción de objetos Path.

Esta es una adición relativamente nueva a Java, disponible desde Java 12. Compara los tamaños y bytes de dos archivos y devuelve la posición del primer desajuste (de bytes). O bien, -1L si no hay desajuste.

Se explica por sí mismo. Devuelve el propietario de un archivo o directorio como UserPrincipal (que se extiende desde Principal). En Windows, esto será un WindowsUserPrincipal, que contiene el nombre de la cuenta del usuario (mostrado abajo), así como su sid, su identificador de seguridad único en su máquina Windows.

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad