Olá amigos preciso carregar um arquivo do Computador em uma stream para fazer hash com ele. Mas estou tendo dificuldades para fazer com que o netbeans abra uma janela para eu escolher o arquivo. Será que alguem pode me ajudar?
Carregar arquivo em Stream
2 Respostas
Olá pelo que entendi sua dúvida, você pode usar o diálog JFileChooser, e usar a classe Scanner, e receber como stream o arquivo que o usuário escolher.
Ex:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JEditor extends JFrame {
private JButton btAbrir;
private JScrollPane scroll;
private JTextArea areaEditor;
public JEditor() {
super("Teste");
this.setSize(300,300);
btAbrir= new JButton("Abrir");
areaEditor= new JTextArea();
scroll= new JScrollPane(areaEditor);
Container container= this.getContentPane();
container.add(btAbrir,"North");
container.add(scroll,"Center");
btAbrir.addActionListener(new ActionListener () {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
lerArquivo();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// TODO Auto-generated constructor stub
}
public void lerArquivo() throws FileNotFoundException {
StringBuilder sb= new StringBuilder();
JFileChooser dialogo= new JFileChooser(); //Dialogo para encontrar o arquivo
int resultado=dialogo.showOpenDialog(this);
if (resultado==JFileChooser.APPROVE_OPTION ) {
java.io.File arquivo= dialogo.getSelectedFile();
String localizacao=arquivo.getAbsolutePath();
Scanner sc= new Scanner(new FileInputStream(localizacao)); //Joga no stream
while (sc.hasNext() ) {
sb.append(sc.nextLine()); //Lê do stream e concatena com StringBuilder
sb.append("\n");
}
areaEditor.setText(sb.toString());
sc.close();
}
}
}
public class Principal {
public static void main(String[] args) {
JEditor j = new JEditor();
j.setVisible(true);
}
}
Att
valeu amigo era isso mesmo que eu precisava
Criado 10 de novembro de 2007
Ultima resposta 10 de nov. de 2007
Respostas 2
Participantes 2
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo