Abra um arquivo em Java

Rupam Yadav 12 outubro 2023
  1. Usando a classe Desktop para abrir um arquivo em Java
  2. Usando a classe FileInputStream em Java
  3. Usando a classe BufferedReader para abrir um arquivo em Java
  4. Usando a classe Scanner para abrir um arquivo em Java
Abra 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 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

Artigo relacionado - Java File