Abra um arquivo em Java
-
Usando a classe
Desktop
para abrir um arquivo em Java - Usando a classe FileInputStream em Java
-
Usando a classe
BufferedReader
para abrir um arquivo em Java -
Usando a classe
Scanner
para abrir um arquivo em Java
Existem muitas maneiras de abrir um arquivo em Java. Discutiremos alguns deles aqui neste artigo.
Usando a classe Desktop
para abrir um arquivo em Java
O pacote Java AWT tem uma classe Java Desktop
usada para lançar aplicativos registrados na área de trabalho nativa para lidar com um arquivo ou URI. Sua implementação depende da plataforma; portanto, é necessário verificar se o sistema operacional suporta Desktop
ou não. Ele lança FileNotFoundException
se não houver nenhum aplicativo registrado ou se ele falhar ao ser iniciado.
A classe Desktop
tem o método open()
que inicia o aplicativo registrado para abrir um arquivo que toma como argumento.
Criamos um novo objeto de classe File
passando o caminho para o arquivo de texto como um argumento. Ele retorna imediatamente se Desktop.isDesktopSupported()
retorna falso se o sistema não suporta o Desktop. Obtemos a instância Desktop
desktop
do contexto do navegador atual.
Usamos o método exists()
no objeto file
para verificar se o arquivo existe. Chamamos desktop.open()
para abrir o arquivo no editor de texto padrão.
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 a classe FileInputStream em Java
A classe FileInputStream
é usada para ler dados orientados a bytes, como áudio, dados de imagem, vídeo, etc. Ela também pode ser usada para ler fluxos de caracteres à medida que obtém bytes de entrada de arquivos. Portanto, pode ser usado para abrir e ler arquivos. A classe FileReader
é recomendada para a leitura de arquivos, no entanto.
Criamos um FileInputStream fIS
para ler o objeto de arquivo, f
em nosso código. Lemos o conteúdo do arquivo e o gravamos no terminal. No loop while
, lemos os caracteres do stream até que o método read()
retorne -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();
}
}
}
Produção:
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.
Usando a classe BufferedReader
para abrir um arquivo em Java
A classe BufferedReader lê texto de um fluxo de entrada baseado em caracteres. É necessário um objeto leitor para que passemos um novo FileReader
para seu construtor. FileReader
é uma classe conveniente para ler arquivos de caracteres.
BufferedReader cria um fluxo de entrada de caracteres de buffer que usa um tamanho padrão. Lemos a partir do fluxo até que o método read()
retorne -1 e imprima a saída do arquivo.
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();
}
}
}
Produção:
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.
Usando a classe Scanner
para abrir um arquivo em Java
A classe Scanner
em Java pertence ao pacote java.util
. Ele pode analisar tipos e strings primitivos usando expressões regulares e pode ser usado para ler dados de arquivos. Criamos um objeto de classe Scanner
especificando o arquivo no construtor.
Lemos o arquivo linha por linha usando o método hasNextLine()
e imprimimos cada linha dentro do loop while até termos uma próxima linha para ler do arquivo.
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();
}
}
}
Produção:
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