Manejo de archivos en Java: ¿Cómo trabajar con archivos Java?

Publicado: 2021-03-12

Java es un lenguaje de programación muy popular. Además de la arquitectura y los componentes robustos , una de las razones más importantes detrás de su éxito y popularidad es su compatibilidad con numerosas funcionalidades. El manejo de archivos en Java es una de esas funciones que nos permite trabajar con archivos. Hoy, aprenderemos sobre varias operaciones que podemos realizar con los conceptos de archivos en Java .

Tabla de contenido

¿Qué es el manejo de archivos Java?

Como se mencionó, el manejo de archivos en Java le permite trabajar con archivos. Es una funcionalidad de Java definida en la clase File del paquete Java.io. El paquete io en Java.io significa Entrada y Salida. Encontrará todas las clases que necesitará para realizar cualquier operación de entrada o salida en el paquete Java.io.

Puede acceder y usar esta clase de archivo para realizar varias funciones creando un objeto y proporcionando el nombre del archivo o directorio. La sintaxis para crear un objeto y usar la clase File es:

importar java.io.Archivo;

Archivo obj = nuevo archivo ("nombre.txt");

Como se ve en la sintaxis anterior, primero debe importar la clase de archivo del paquete Java.io. Una vez importado, todo lo que necesita hacer es crear un objeto y especificar el nombre del archivo o directorio con el que desea trabajar. Para mencionar el nombre del directorio en un sistema operativo Windows, debe usar "\\". Por ejemplo, debe usar " C:\\Users\\MyFolder\\MySubFolder " y no " C:\Users|MyFolder|MySubFolder ". Sin embargo, para otros sistemas operativos como Linux, puede usar el único \ como de costumbre.

Todas las operaciones de E/S (Entrada/Salida) de los conceptos de archivos en Java se realizan con la ayuda de un flujo. Profundicemos en qué es un flujo y cómo se realizan estas operaciones con él.

¿Cuál es el concepto de flujos en Java?

En términos más simples, un flujo es una serie de datos. Hay dos tipos de flujo, que son:

  • Flujo de bytes : este tipo de flujo funciona con datos de bytes. Las operaciones de E/S se realizan con un flujo de bytes cuando lee o escribe datos en formato de bytes (8 bits).
  • Flujo de caracteres : este tipo de flujo funciona con una secuencia de caracteres. Las operaciones de E/S se realizan con un flujo de caracteres cuando está leyendo o escribiendo datos usando caracteres.

Pago: Principales proyectos de Java en GitHub

¿Cuáles son los diferentes métodos disponibles para el manejo de archivos en Java?

La clase File proporciona varios métodos predefinidos para ayudarlo a realizar todas las operaciones de E/S simplemente llamándolos. La siguiente tabla muestra todos los métodos, junto con las acciones que realizan.

Método Escribe Descripción
puedo leer() booleano Comprueba si puede leer el archivo o no.
puede escribir() booleano Comprueba si puede escribir en el archivo o no.
crearNuevoArchivo() booleano Esto creará un nuevo archivo vacío.
Eliminar() booleano Este método eliminará el archivo especificado.
existe() booleano Comprueba si existe el archivo mencionado.
obtenerNombre() Cuerda Devuelve el nombre del archivo.
obtenerRutaAbsoluta() Cuerda Devuelve la ruta de acceso absoluta del archivo.
longitud() Largo Devuelve el tamaño del archivo en bytes.
lista() Cuerda[] Devuelve una lista de nombres de archivos presentes en el directorio.
mkdir() booleano Este método creará un nuevo directorio.

¿Cómo realizar diferentes operaciones de manejo de archivos Java?

Ya que conoce los diferentes métodos disponibles en la clase File, es hora de usarlos para realizar varias operaciones de manejo de archivos Java . Para empezar, puede realizar las siguientes acciones en un archivo.

  • Cree un nuevo archivo.
  • Obtener información del archivo.
  • Escribir en un archivo.
  • Leer de un archivo.
  • Eliminar un archivo.

Veremos un ejemplo para realizar cada una de estas operaciones. En el primer ejemplo, crearemos un nuevo archivo y luego usaremos el mismo archivo para realizar otras tareas.

Crear un archivo

Puede crear un archivo con el método createNewFile(). Ejecutar el método devolverá verdadero o falso. Si el archivo se crea correctamente, devolverá un verdadero. Por otro lado, si el archivo ya existe, devolverá un falso.

Siempre se recomienda usar este método dentro de un bloque de prueba y captura, ya que puede generar una excepción si el archivo no se crea correctamente. Puede obtener más información al respecto en nuestra guía sobre el manejo de excepciones en Java . Vea el siguiente ejemplo que usa el método createNewFile() para crear un nuevo archivo vacío.

importar java.io.Archivo; // Importando la clase de Archivo

importar java.io.IOException; // Importación de la clase IOException para el manejo de errores

clase pública CreateFileExample{

public static void main(String[] args){

tratar{

Archivo obj = nuevo archivo ("nuevo archivo.txt");

if(obj.createNewFile()){ // si devuelve verdadero, es decir, se creó con éxito

System.out.println(“El archivo se creó con éxito:” + obj.getName());

}

else{ // si devuelve falso, es decir, el archivo ya existe

System.out.println(“El archivo ya existe”);

}

}

catch (IOException e){ // para capturar excepciones si ocurre algún error

System.out.println(“Ocurrió un error”);

e.printStackTrace();

}

}

}

Producción:

El archivo se crea con éxito: newFile.txt

Obtener información del archivo

Puede usar varios métodos definidos en la clase de archivo para acceder a la información diferente del archivo, como el nombre, la longitud, la ruta absoluta, legible y más. Algunos de los métodos para obtener información del archivo se utilizan en el siguiente ejemplo.

importar java.io.Archivo;

clase pública AccessInfoExample{

public static void main(String[] args){

// Creando un objeto

Archivo obj = nuevo archivo ("nuevo archivo.txt");

if(obj.existe()){

// Obteniendo el nombre del archivo

System.out.println(“El nombre del archivo es:” + obj.getName());

// Obtener ruta absoluta

System.out.println(“La ruta absoluta del archivo es:” + obj.getAbsolutePath());

// Comprobando si el archivo es escribible

System.out.println(“¿Se puede escribir en el archivo?” + obj.canWrite());

// Comprobando si el archivo es legible

System.out.println(“¿Se puede leer el archivo?” + obj.canRead());

// Obtener la longitud en bytes

// Mostrará 0 ya que aún no hemos escrito nada en nuestro archivo

System.out.println(“Tamaño del archivo en bytes:” + obj.length());

}

demás{

System.out.println(“Nombre del archivo” + obj.getName() + “no existe”);

}

}

}

Producción:

El nombre del archivo es: newFile.txt

La ruta absoluta del archivo es: D:JavaProgramming:newFile.txt

¿Se puede escribir en el archivo? cierto

¿Se puede leer el archivo? cierto

Tamaño del archivo en bytes: 0

El resultado del ejemplo anterior puede variar según el nombre del archivo, la ruta donde lo guardó y el tamaño. Si el archivo especificado no existe, mostrará "El archivo llamado newFile.txt no existe".

Escribir en un archivo

Para escribir datos en bytes, use la clase FileOutputStream y, para los caracteres, use la clase FileWriter. En el siguiente ejemplo, usaremos la clase FileWriter y su método predefinido write() para escribir algo dentro de nuestro "nuevo archivo".

Una cosa a tener en cuenta antes de comenzar con el ejemplo es que cada vez que abre un archivo para escribir, debe cerrarlo con el método close(). Cerrar el archivo le permitirá recuperar los recursos asignados por el compilador de Java para escribir en un archivo. Veamos cómo hacerlo en el ejemplo.

importar java.io.FileWriter; // Importando la clase FileWriter

importar java.io.IOException; // Importación de la clase IOException para el manejo de errores

ejemplo de escritura de clase pública{

public static void main(String[] args){

tratar{

FileWriter obj = new FileWriter(“nuevoArchivo.txt”);

obj.write("¡Esto se escribirá en el archivo newFile.txt!");

obj.cerrar(); // Cerrando el archivo

System.out.println(“Hemos escrito correctamente en el archivo y lo hemos cerrado”);

}

catch(IOException e){

System.out.println(“Ocurrió un error.”);

e.printStackTrace();

}

}

}

Producción:

Hemos escrito correctamente en el archivo y lo hemos cerrado.

Lectura de un archivo

Puede usar FileInputStream para leer datos de bytes y FileReader para leer datos de caracteres de un archivo. Alternativamente, también puede usar la clase Scanner para leer desde un archivo. Como ya hemos usado FileWriter para escribir datos, usaremos la clase Scanner para leer datos en este ejemplo. Al igual que al escribir, también es necesario cerrar el archivo abierto mientras se lee.

importar java.io.Archivo; // Importando la clase de Archivo

importar java.io.FileNotFoundException; // Importando la clase para el manejo de errores

importar java.util.Scanner; // Importando la clase Scanner para leer archivos de texto

ejemplo de lectura de clase pública{

public static void main(String[] args){

tratar{

Archivo obj = nuevo archivo ("nuevo archivo.txt");

Escáner robj = nuevo Escáner(obj);

while (robj.hasNextLine()){

Cadena dataInfo = robj.nextLine();

System.out.println(dataInfo);

}

robj.cerrar();

}

catch(FileNotFoundException e){

System.out.println(“Ocurrió un error.”);

e.printStackTrace();

}

}

}

Producción:

¡Esto se escribirá en el archivo newFile.txt!

Eliminación de un archivo

Puede eliminar un archivo utilizando el método delete() de la clase File. También puede eliminar una carpeta completa si está vacía. Eliminemos nuestro archivo "newFile.txt" en el siguiente ejemplo.

importar java.io.Archivo; // Importar la clase de archivo

clase pública DeleteExample{

public static void main(String[] args){

Archivo obj = nuevo archivo ("nuevo archivo.txt");

if(obj.eliminar()){

System.out.println(“El archivo llamado” + obj.getName() + “se eliminó con éxito”);

}

demás{

System.out.println(“Archivo no eliminado”);

}

}

}

Producción:

El archivo llamado newFile.txt se elimina correctamente.

Lea también: Ideas y temas de proyectos Java

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

En esta publicación, aprendiste todo sobre el manejo de archivos en Java . Java proporciona varias funcionalidades de este tipo, lo que lo convierte en uno de los lenguajes de programación más populares en todo el mundo. Por lo tanto, no sorprende que el salario de los desarrolladores de Java en la India sea muy alto. Si desea convertirse en desarrollador de Java y obtener un paquete de salario alto, el curso gratuito en línea de Java de upGrad es adecuado para usted.

El curso es parte del programa upStart, una iniciativa de mejora de habilidades invaluable. Una vez que haya terminado con el curso gratuito y obtenga la certificación, puede optar por la Certificación PG de upGrad en Desarrollo Full-Stack . Obtiene más de 400 horas de material de aprendizaje con experiencia práctica a través de proyectos. Tome el curso y sobresalga en el campo del desarrollo de software con conceptos de programación Java.

¿Cómo leer y escribir archivos en Java?

Un objeto de clase InputStream representa una fuente de datos desde la que se pueden leer bytes, y un objeto de clase OutputStream representa un destino en el que se pueden escribir bytes. Dichos objetos se utilizan con varias clases del paquete java.io para leer y escribir archivos, leer y escribir datos de sockets y llevar a cabo una variedad de otras operaciones de entrada y salida.

¿Cuáles son las diferentes bibliotecas de manejo de archivos en Java?

Hay varias bibliotecas de manejo de archivos proporcionadas en java. Cada uno tiene su propio propósito y uso. El paquete java.io define las clases básicas de manejo de archivos. Entonces podemos decir que es la biblioteca de manejo de archivos de uso más general. El paquete java.nio, también conocido como el paquete New Input/Output, se usa principalmente para la transferencia de datos de alto rendimiento, baja latencia y bajo ancho de banda. Es seguro, liviano e independiente de la plataforma. Este paquete amplía el paquete java.io al agregar API basadas en canales. Además, el paquete java.nio.file es para la interfaz de programación de los sistemas de archivos. Un sistema de archivos es una organización jerárquica de datos, independiente del medio físico, dentro del cual se almacena la información. Un sistema de archivos permite compartir archivos y la comunicación entre procesos entre aplicaciones. Además, el paquete java.nio.file.attribute es para las clases e interfaces de los atributos del sistema de archivos.

¿Cuáles son las aplicaciones de manejo de archivos en Java?

El manejo de archivos es uno de los muchos temas de programación Java interesantes y valiosos. Es vital para los programadores de Java saber cómo crear, abrir, leer, escribir, agregar y eliminar un archivo en Java. Esto ayuda a los programadores a manipular datos en un archivo. Hay muchas operaciones que se pueden realizar en un archivo, como averiguar la longitud del archivo, leer el contenido de un archivo, determinar si se puede escribir en el archivo, etc.