1. Files
clase
Para trabajar con archivos, existe una elegante clase de utilidad: java.nio.file.Files
. Tiene métodos para cada ocasión. Todos los métodos de esta clase son estáticos y operan en el objeto Path. Hay muchos métodos, por lo que consideraremos solo los más importantes:
Método | Descripción |
---|---|
|
Crea un nuevo archivo cuya ruta espath |
|
Crea un nuevo directorio |
|
Crea múltiples directorios |
|
Crea un archivo temporal |
|
Crea un directorio temporal |
|
Elimina un archivo o directorio si está vacío |
|
Copia un archivo |
|
Mueve un archivo |
|
Comprueba si la ruta es un directorio y no un archivo |
|
Comprueba si la ruta es un archivo y no un directorio |
|
Comprueba si existe un objeto en la ruta dada |
|
Devuelve el tamaño del archivo |
|
Devuelve todo el contenido de un archivo como una matriz de bytes |
|
Devuelve todo el contenido de un archivo como una cadena |
|
Devuelve todo el contenido de un archivo como una lista de cadenas |
|
Escribe una matriz de bytes en un archivo |
|
Escribe una cadena en un archivo. |
|
Devuelve una colección de archivos (y subdirectorios) del directorio dado |
2. Creación de archivos y directorios
Los archivos y directorios son muy fáciles de crear. Vamos a convencernos con algunos ejemplos:
Código | Nota |
---|---|
|
Crea un archivo |
|
Crea un directorio |
|
Crea un directorio y todos los subdirectorios necesarios si no existen. |
3. Copiar, mover y borrar
Copiar, mover y eliminar archivos es igual de fácil. Esto también se aplica a los directorios, pero deben estar vacíos.
Código | Nota |
---|---|
|
Copia un archivo |
|
Mueve y cambia el nombre de un archivo |
|
Elimina un archivo |
4. Comprobar el tipo y la existencia de un archivo
Cuando tiene una ruta proporcionada por otra persona, desea saber si es un archivo o un directorio. Y, en general, ¿existe o no tal archivo/directorio?
Hay métodos especiales para esto también. También puede averiguar fácilmente la longitud de un archivo:
Código | Nota |
---|---|
|
|
|
|
|
|
|
|
5. Trabajar con contenidos de archivos
Finalmente, existe toda una serie de métodos que facilitan la lectura o escritura del contenido de un archivo. Ejemplo:
Código | Descripción |
---|---|
|
Lee el contenido del archivo como una lista de cadenas. Mostrar las cadenas |
6. Obtener el contenido de un directorio
El método más interesante aún permanece. Se utiliza para obtener archivos y subdirectorios en un directorio determinado.
Estamos hablando del newDirectoryStream()
método, que devuelve un DirectoryStream<Path>
objeto especial. Tiene un iterador (!) que puede usar para obtener todos los archivos y subdirectorios de un directorio determinado.
Esto es más fácil de lo que parece.
Código | Descripción |
---|---|
|
Obtenga un objeto con una lista de archivos Recorra la lista de archivos |
El DirectoryStream<Path>
objeto tiene dos propiedades. Primero, tiene un iterador que devuelve las rutas de los archivos y podemos usar este objeto dentro de un for-each
bucle.
Y segundo, este objeto es un flujo de datos, por lo que debe cerrarse explícitamente usando el close()
método o declararse dentro de un try-with-resources
bloque.
7. Files.newInputStream
método
A partir de Java 5, las clases FileInputStream
y FileOutputStream
han quedado obsoletas. Una de sus desventajas era que cuando se crean objetos de estas clases, los archivos se crean inmediatamente en el disco. Y todas las excepciones relacionadas con la creación de archivos podrían generarse potencialmente.
Más tarde esto fue reconocido como no la mejor decisión. En consecuencia, se recomienda utilizar los métodos de la java.nio.Files
clase de utilidad para crear objetos de archivo.
Aquí hay una comparación entre el enfoque anterior y el nuevo enfoque para crear archivos:
Antes |
---|
|
Después |
|
Y hay un reemplazo similar para FileOutputStream
:
Antes |
---|
|
Después |
|
GO TO FULL VERSION