En estas lecciones verá cómo leer y escribir desde y hacia el sistema de archivos.
En estas lecciones verá cómo leer y escribir desde y hacia el sistema de archivos. La API de archivos heredados se utiliza en muchos proyectos, marcos y bibliotecas antiguos. A pesar de su antigüedad, la API heredada no está en desuso y aún puede usarla con cualquiera de las últimas versiones de Java.
Aprenderá cómo java.nio.file.Path hace todo lo que java.io.File puede hacer, y generalmente de una mejor manera, con las nuevas clases capaces de admitir enlaces simbólicos, atributos de archivo adecuados, metadatos, ACLs y más. Al trabajar con archivos o rutas, es probable que utilice la clase java.nio.file.Files y cubriremos muchas funciones comunes que operan en archivos y directorios. La entrada y la salida abarcan una amplia gama de fuentes y, naturalmente, necesitamos tratar con el contenido de los archivos de caracteres y bytes. La biblioteca NIO está repleta de todo lo que necesitamos para cumplir con cualquier requisito de I/O al que nos enfrentemos.
Objetivos de aprendizaje:
- Describir la nueva biblioteca NIO
- Comprender cómo leer y escribir en el sistema de archivos
- Explicar cómo crear archivos temporales
Habilidades que obtendrás
E/S de archivosProcesador de E/SJava 11Java Advanced ImagingAPI de JavaE/S sin bloqueo (Java)Lo que aprenderás
- Describir la biblioteca Java NIO y sus capacidades de manejo de archivos
- Leer desde y escribir en el sistema de archivos usando Java I/O
- Usar java.nio.file.Path en lugar de la API heredada java.io.File
- Trabajar con la clase java.nio.file.Files para operaciones comunes de archivos y directorios
- Manejar metadatos de archivos, atributos, ACL y enlaces simbólicos
- Crear archivos temporales usando la biblioteca NIO
Puntos clave
- La API heredada java.io.File no está deprecada y sigue funcionando con las últimas versiones de Java.
- java.nio.file.Path hace todo lo que java.io.File puede hacer y generalmente lo hace mejor, con soporte para enlaces simbólicos, atributos de archivo, metadatos y ACL.
- La clase java.nio.file.Files proporciona muchas funciones comunes que operan en archivos y directorios.
- La entrada y salida cubren una amplia gama de fuentes, requiriendo el manejo del contenido de archivos tanto de caracteres como de bytes.
- El curso cubre lectura, escritura y trabajo con metadatos de archivos.
Preguntas frecuentes
¿Qué cubre este curso?
Cubre cómo leer y escribir hacia y desde el sistema de archivos en Java, incluyendo la biblioteca NIO, las clases java.nio.file.Path y java.nio.file.Files, metadatos de archivos y creación de archivos temporales. Las lecciones incluyen Lectura, Escritura y Metadatos de Archivos.
¿Este curso enseña la API de archivos heredada o la biblioteca NIO más nueva?
Ambas. Explica la API de archivos heredada, que sigue siendo utilizable y no está deprecada, mientras muestra cómo java.nio.file.Path y la biblioteca NIO generalmente hacen el mismo trabajo mejor, con soporte para enlaces simbólicos, atributos de archivo, metadatos y ACL.
¿Qué habilidades adquiriré en este curso?
Adquirirá habilidades en E/S de Archivos, Procesamiento de E/S, Java 11, Imágenes Avanzadas de Java, API de Java e Entrada/Salida sin Bloqueo en Java.
¿Cuáles son los objetivos de aprendizaje?
Los objetivos son describir la nueva biblioteca NIO, comprender cómo leer y escribir en el sistema de archivos y explicar cómo crear archivos temporales.
Transcripción
Transcripción
Hola, y bienvenido de nuevo. Scott Stanlick aquí. En estas lecciones, vamos a echar un vistazo en la entrada/salida del archivo. Y veremos cómo leer archivos, escribir archivos, obtener metadatos sobre archivos. Así que quiero empezar diciendo solo que en Java, tienes la capacidad de lectura y escritura de flujos de bytes, que son caracteres de ocho bits o flujos de caracteres, que son caracteres Unicode de 16 bits, y hay un puente construido en para hacer la transición entre flujos de bytes y flujos de caracteres o flujos de caracteres a flujos de bytes. Y hay muchas, muchas maneras diferentes en el que puede leer el contenido. Pero para flujos de impresión de datos, canalizados, canales, matrices de bytes, búferes de cadenas, flujos de entrada de objetos, la lista es larga. Probablemente hay casi cualquier cosa posible que tendrías que hacer con respecto a la lectura o escritura de archivos, I/O. Así que lo primero que vamos a ver está leyendo un archivo pequeño usando esta nueva biblioteca de E/S, y tenemos un archivo, este es un archivo Java en realidad que vamos a leer. Vamos a usar la clase Files, el método readAllLines, pásala por el camino y darle el conjunto de caracteres, que esto es UTF-8. Entonces, si ejecutamos esta primera prueba, Obtengo una transmisión y voy a decir para cada línea en la corriente o para cada elemento de la corriente, imprimirlo. Así que podemos ver aquí, por supuesto, que se parece al archivo, FileReadWriteFun, ahí está el archivo que estamos leyendo. El siguiente nos muestra una técnica. que podemos usar para no leer todas las líneas en y porque si tuvieras un archivo monstruo, como un archivo enorme, muy grande, es posible que no tenga suficiente memoria para leer todas las líneas. Entonces hay otro comportamiento en la clase Archivos llamadas Líneas que en realidad harán precisamente eso. Transmites y mientras lees las líneas aquí, sólo se cargan bits del archivo en la memoria a la vez. Así que es mucho más eficiente en memoria. Logras lo mismo que veremos aquí. Todavía voy a leer el archivo completo. Pero lo lees en trozos en lugar de leer todo el archivo en la memoria. Entonces, el mismo resultado, el mismo contenido, el mismo resultado. Es solo una forma mucho más eficiente de memoria de leer fragmentos de un archivo en en contraposición a todo el asunto. Y la última lectura que vamos a ver es un flujo de entrada de datos donde tenemos control sobre todos y cada uno de los bytes que leemos en a diferencia de leer líneas o todas las líneas. Bueno, el enfoque que se está utilizando aquí es que vamos a averiguar cuántos bytes están disponibles en el lector dada esa ruta. Y vamos a crear una matriz de bytes aquí y lea todos los bytes en esa matriz de bytes. Y luego imprimir el contenido. de la matriz de bytes como una cadena. Entonces, veamos. Esto debería resultar en la misma salida. Seguro que sí. Así que agradezco que estés mirando. Muchas gracias.
Aprende sobre la marcha
Lleva tu aprendizaje a todas partes: la app de KnowledgeCity te permite ver las lecciones sobre la marcha.