Fazer o programa ler um arquivo

Estou querendo começar um programa(sou leigo) que lê as informações de um arquivo, por exemplo, se eu escrever no bloco de notas “olá mundo” e salvar na minha área de trabalho.
Quero poder apertar com o botão direito neste arquivo, ir em abrir com, e selecionar o meu programa, onde o meu programa irá abrir uma janela me mostrando o conteúdo do arquivo, neste exemplo “olá mundo”.
Como posso começar ? O que ele precisará ter para funcionar ?

Boa noite, :coffee:
Para ler você fará o seguinte, vou dar um exemplo de como ler informações de um arquivo aqui:

public static void main(String[] args) {

	try {
		FileReader txt = new FileReader("arquivo.txt"); //NOME DO ARQUIVO PARA LEITURA 
		Scanner scan = new Scanner(txt); //O SCANNER IRÁ FAZER UMA VARREDURA NO ARQUIVO

//O MÉTODO hasNextLine() SÓ PARA QUANDO CHEGA NA ULTIMA LINHA
//NO CASO ELE LERÁ TODO O ARQUIVO E IRÁ IMPRIMIR NA TELA
		while (scan.hasNextLine()) {
			System.out.println(scan.nextLine());
		}

	} catch (FileNotFoundException e) {
		System.out.println("ARQUIVO NÃO ENCONTRADO"); //CASO NÃO ENCONTRE OU O NOME DO ARQUIVO ESTEJA INCORRETO, APARECERÁ ESSA MENSAGEM
	}
}
1 curtida

Boa noite.
Perdão, meu português não é muito bom.

Eu acho que este é um exemplo simples do que vc precisa.

public void inicio() {
        JFrame janela01 = new JFrame("Titulo 1");
        JButton btnOpen = new JButton("Abrir");
        janela01.add(btnOpen);
        janela01.pack();

        btnOpen.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    JFileChooser fileChooser = new JFileChooser();
                    int result = fileChooser.showOpenDialog(janela01);
                    if (result == JFileChooser.APPROVE_OPTION) {
                        showJanela02(fileChooser.getSelectedFile(), janela01);
                    }
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        });
        janela01.setVisible(true);
    }
 public void showJanela02(File file, JFrame pai) throws FileNotFoundException, IOException {
        JDialog janela02 = new JDialog(pai, "Titulo 2");
        JTextArea jtxtA = new JTextArea();

        BufferedReader input = new BufferedReader(new InputStreamReader(
                new FileInputStream(file)));
        jtxtA.read(input, "READING FILE :-)");

        janela02.add(jtxtA);
        janela02.pack();
        janela02.setModal(true);
        janela02.setVisible(true);
    }

Saudações da Argentina :argentina: :wink:

Programas Java (.class e/ou .jar) não são nativos do sistema operacional, eles são nativos da máquina virtual Java.

Para que seu programa apareça na lista de programas válidos para o menu “Abrir com” do Windows, ele precisa ser um programa nativo (.exe) ou um arquivo de lote (.bat).

Isso significa que você pode criar um .bat para executar o Java passando sua classe ou .jar como parâmetro e depois selecionar esse .bat no menu “Abrir com” do Windows.
:slight_smile:

Para o seu programa receber o arquivo selecionado com a opção “abrir com”, você vai precisar tratar os argumentos recebidos no método main de sua aplicação.

1 - Vamos criar um programa Java que recebe o caminho de um arquivo no método main e apresenta o conteúdo dele em um JFrame.

package examples;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;

public class AbridorDeArquivo {

    public static void main(String[] args) {
        try {
            if (args != null && args.length == 1) {
                AbridorDeArquivo abridor = new AbridorDeArquivo();
                abridor.abrir(args[0]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void abrir(String caminho) throws IOException {
        File arquivo = new File(caminho);
        List<String> conteudo = Files.readAllLines(arquivo.toPath());
        exibir(conteudo);
    }

    private void exibir(List<String> conteudo) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            JFrame frame = new JFrame("Meu visualizador");
            frame.setMinimumSize(new Dimension(640, 480));
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JTextArea textArea = new JTextArea();
            textArea.setEditable(false);
            for (String linha : conteudo) {
                textArea.append(linha);
                textArea.append("\n");
            }
            frame.add(new JScrollPane(textArea), BorderLayout.CENTER);
            frame.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2 - Compile este arquivo e gere um arquivo .jar executável.

3 - Crie um arquivo .bat para executar o seu arquivo .jar, abaixo está o conteúdo desse arquivo .bat:

@ECHO OFF
REM acessar o diretório do próprio .bat
cd /d %~dp0
REM executar o 'meu.jar' através do Java e passar o arquivo selecionado como parâmetro
start javaw -jar .\meu.jar %1

4 - Criar um arquivo qualquer (Eu salvei como meu-arquivo.meu) com o seguinte conteúdo:

Olá mundo!

5 - Clicar com o botão direito em cima do arquivo salvo e selecionar “Abrir com”:

abrir-com

6 - Selecione a opção “Procurar outro arquivo neste PC”:

7 - Acesse a pasta onde se encontra o ser arquivo .jar e o seu arquivo .bat (ambos devem estar numa mesma pasta) e selecione o seu arquivo .bat e clique em “Abrir”:

meu-programa

8 - Se tudo correu bem, seu programa será executado e vai apresentar o conteúdo do arquivo selecionado:

visualizador