El API java.nio
(New I/O) es una mejora del sistema de entrada/salida (I/O) original de Java, que ofrece mayor flexibilidad para la lectura y escritura de datos de archivos y redes. En particular, el paquete java.nio.file
(a veces referido como NIO.2), introducido en Java SE 7, proporciona un conjunto de características extensas y versátiles para manipular archivos y directorios.
¿Te está gustando esta lección?
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
Las principales clases y interfaces de java.nio.file
que se cubrirán en esta explicación son:
Path
: representa la ubicación de un archivo o directorio en un sistema de archivos.Paths
: contiene métodos de utilidad para crear instancias dePath
.Files
: proporciona métodos de utilidad para manipular archivos y directorios.FileSystem
yFileSystems
: representan y proporcionan acceso a sistemas de archivos, respectivamente.BasicFileAttributes
: permite acceder a los atributos básicos de un archivo.
Path y Paths
La interfaz Path
representa la ubicación de un archivo o directorio en un sistema de archivos. Se pueden construir objetos Path
usando la clase de utilidad Paths
. Por ejemplo:
Path path = Paths.get("/home/user/documentos");
Una Path
también puede representar una ruta relativa. Por ejemplo:
Path pathRelativa = Paths.get("documentos/miArchivo.txt");
Un Path
puede ser convertido a un File
, y viceversa:
File file = path.toFile();
Path samePath = file.toPath();
Files
La clase Files
proporciona una serie de métodos estáticos para realizar operaciones con archivos y directorios. Por ejemplo:
- Leer todas las líneas de un archivo:
Path path = Paths.get("/home/user/documentos/miArchivo.txt");
List<String> lines = Files.readAllLines(path);
- Copiar un archivo:
Path source = Paths.get("/home/user/documentos/miArchivo.txt");
Path target = Paths.get("/home/user/documentos/miArchivoCopia.txt");
Files.copy(source, target);
- Eliminar un archivo:
Path path = Paths.get("/home/user/documentos/miArchivo.txt");
Files.delete(path);
FileSystem y FileSystems
La interfaz FileSystem
representa un sistema de archivos. Puede ser uno proporcionado por la plataforma (por ejemplo, el sistema de archivos nativo), o uno proporcionado por un proveedor personalizado. Se puede obtener una instancia de un FileSystem
utilizando la clase de utilidad FileSystems
. Por ejemplo:
FileSystem fs = FileSystems.getDefault();
Con un FileSystem
, puedes obtener información sobre el sistema de archivos y realizar operaciones con él. Por ejemplo, puedes obtener el separador de archivos utilizado por el sistema de archivos:
String separator = fs.getSeparator();
También puedes obtener un Path
a partir de un FileSystem
:
Path path = fs.getPath("/home/user/documentos");
BasicFileAttributes
La interfaz BasicFileAttributes
proporciona acceso a los atributos básicos asociados a un archivo. Puedes obtener una instancia de BasicFileAttributes
para un archivo determinado utilizando la clase Files
. Por ejemplo:
Path path = Paths.get("/home/user/documentos/miArchivo.txt");
BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
System.out.println("Tamaño del archivo: " + attrs.size());
System.out.println("Fecha de creación: " + attrs.creationTime());
System.out.println("Es un directorio: " + attrs.isDirectory());
En resumen, el API java.nio.file
proporciona una serie de clases y métodos de utilidad para trabajar con archivos y sistemas de archivos en Java de una manera más flexible y versátil. Esta es solo una introducción básica; hay muchos más métodos y características disponibles en este API.
Aprendizajes de esta lección
- Entender el propósito y uso de la interfaz
Path
y la clasePaths
para representar y crear rutas de archivos y directorios. - Comprender cómo se utiliza la clase
Files
para realizar operaciones en archivos y directorios, como lectura, copia y eliminación. - Familiarizarse con las clases
FileSystem
yFileSystems
para trabajar con y acceder a los sistemas de archivos. - Aprender cómo utilizar
BasicFileAttributes
para acceder a los atributos de un archivo. - Ganar habilidad en el manejo del API
java.nio
para manipulación de archivos y directorios de manera eficiente.
Completa Java y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs