Abrir un archivo en Java
-
Uso de la clase
Desktop
para abrir un archivo en Java - Usando la clase FileInputStream en Java
-
Uso de la clase
BufferedReader
para abrir un archivo en Java -
Uso de la clase
Scanner
para 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn