Abrir un archivo en Java

Rupam Yadav 12 octubre 2023
  1. Uso de la clase Desktop para abrir un archivo en Java
  2. Usando la clase FileInputStream en Java
  3. Uso de la clase BufferedReader para abrir un archivo en Java
  4. Uso de la clase Scanner para abrir un archivo en Java
Abrir un archivo en Java

Hay muchas formas de abrir un archivo en Java. Discutiremos algunos de ellos aquí en este artículo.

Uso de la clase Desktop para abrir un archivo en Java

El paquete Java AWT tiene una clase Java Desktop que se utiliza para iniciar aplicaciones registradas en el escritorio nativo para manejar un archivo o URI. Su implementación depende de la plataforma; por tanto, es necesario comprobar si el sistema operativo soporta el Desktop o no. Lanza FileNotFoundException si no hay una aplicación registrada o no se inicia.

La clase Desktop tiene el método open() que lanza la aplicación registrada para abrir un archivo que toma como argumento.

Creamos un nuevo objeto de clase File pasando la ruta al archivo de texto como argumento. Vuelve inmediatamente si Desktop.isDesktopSupported() devuelve falso si el sistema no es compatible con el escritorio. Obtenemos la instancia Desktop del contexto actual del navegador.

Usamos el método exists() en el objeto file para comprobar si el archivo existe. Llamamos a desktop.open() para abrir el archivo en el editor de texto por defecto.

import java.awt.*;
import java.io.File;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File file = new File("/Users/john/Desktop/demo.txt");
      if (!Desktop.isDesktopSupported()) {
        System.out.println("not supported");
        return;
      }
      Desktop desktop = Desktop.getDesktop();
      if (file.exists())
        desktop.open(file);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Usando la clase FileInputStream en Java

La clase FileInputStream se usa para leer datos orientados a bytes como audio, datos de imagen, video, etc. También se puede usar para leer flujos de caracteres a medida que obtiene bytes de entrada de archivos. Por lo tanto, se puede utilizar para abrir y leer archivos. Sin embargo, se recomienda la clase FileReader para leer archivos.

Creamos un FileInputStream fIS para leer desde el objeto de archivo, f en nuestro código. Leemos el contenido del archivo y lo escribimos en la terminal. En el bucle while, leemos los caracteres del flujo hasta que el método read() devuelve -1.

import java.io.File;
import java.io.FileInputStream;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File f = new File("/Users/john/Desktop/demo.txt");
      FileInputStream fIS = new FileInputStream(f);
      System.out.println("file content: ");
      int r = 0;
      while ((r = fIS.read()) != -1) {
        System.out.print((char) r);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Producción :

file content: 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.

Uso de la clase BufferedReader para abrir un archivo en Java

La clase BufferedReader lee texto de un flujo de entrada basado en caracteres. Se necesita un objeto lector que le pasamos un nuevo FileReader a su constructor. FileReader es una clase conveniente para leer archivos de caracteres.

BufferedReader crea un flujo de entrada de caracteres en búfer que usa un tamaño predeterminado. Leemos de la secuencia hasta que el método read() devuelve -1 e imprime la salida del archivo.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File fil = new File("/Users/john/Desktop/demo2.txt");
      BufferedReader br = new BufferedReader(new FileReader(fil));
      System.out.println("file content: ");
      int r = 0;
      while ((r = br.read()) != -1) {
        System.out.print((char) r);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Producción :

file content:-- 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.

Uso de la clase Scanner para abrir un archivo en Java

La clase Scanner en Java pertenece al paquete java.util. Puede analizar cadenas y tipos primitivos mediante expresiones regulares y se puede utilizar para leer datos de archivos. Creamos un objeto de clase Scanner especificando el archivo en el constructor.

Leemos el archivo línea por línea usando el método hasNextLine() e imprimimos cada línea dentro del bucle while hasta que tengamos una siguiente línea para leer del archivo.

import java.io.File;
import java.util.Scanner;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File file = new File("/Users/john/Desktop/demo1.txt");
      Scanner scanner = new Scanner(file);
      while (scanner.hasNextLine()) System.out.println(scanner.nextLine());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Producción :

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java File