Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Criei um menu e um dos itens é para abrir um arquivo com um jFileChooser.
Consigo fazer ele lr o arquivo completo e jogar num textarea por exemplo, mas o que eu realmente quero é ler o arquivo texto colocando cada linha num ponto de um vetor.
Abaixo o código que criei do menu:
private void menuAbrirActionPerformed(java.awt.event.ActionEvent evt) {
int returnVal = escolhaArquivo.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = escolhaArquivo.getSelectedFile();
try {
// indica o que fará com o arquivo
//areaTexto.read( new FileReader( file.getAbsolutePath() ), null );
ArquivoLeitura arquivo;
arquivo = new ArquivoLeitura();
arquivo.lerArq(file);
} catch (IOException ex) {
System.out.println("problema ao acessar "+file.getAbsolutePath());
}
} else {
System.out.println("Acesso ao arquivo cancelado pelo usuário.");
}
}
E aqui a classe para ler o arquivo:
public class ArquivoLeitura {
/**
*
* @param arquivo
* @throws IOException
*/
public void lerArq(File arquivo) throws IOException {
String linha[] = null;
int a;
FileReader reader;
reader = new FileReader(arquivo);
BufferedReader leitor = new BufferedReader(reader);
a = 0;
linha[a] = leitor.readLine();
while(linha[a] != null) {
//System.out.println(linha[a]);
linha[a] = leitor.readLine();
a = a + 1;
}
}
}
A princípio o programa roda, mas quando tento abrir o arquivo, aparece o seguinte erro:
Informe o número desejado
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at controlefinanceiro.ArquivoLeitura.lerArq(ArquivoLeitura.java:38)
A linha 38 é esta aqui: linha[a] = leitor.readLine();
Carregando comentários...