Carregar arquivo em Stream

2 respostas
LHP_IRON

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?

2 Respostas

danielbussade

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

LHP_IRON

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