Erro ao carregar os dados de um arquivo

4 respostas
R

Boa tarde, eu estou fazendo um programinha, onde o usuário preenche os dados em um formulário e eles são gravados em um arquivo. A parte de salvar os dados, está ok, mas o meu problema é fazer o programa abrir e carregar os dados do arquivo para dentro dele. Digamos que o cpnteúdo do arquivo seja A,B,C,D,E. Eu tenho que pegar cada uma das letras e colocá-las em um dos JTextField, porém não está conseguindo. O meu código está assim:

try { FileReader fr = new FileReader(nomearquivo); BufferedReader br = new BufferedReader(fr); String linha = ""; String[] vet = null; int a = 0; while(linha!=null) { linha = br.readLine(); StringTokenizer st = new StringTokenizer(linha,","); while(st.hasMoreTokens()) { vet[a] = st.nextToken(); System.out.println(vet[a]); a++; } } } catch(IOException e) { JOptionPane.showMessageDialog(this, "Erro ao abrir o arquivo!", "Erro!", JOptionPane.ERROR_MESSAGE); }
Ele acusa erro de NullPointerException no trecho vet[a] = st.nextToken();

4 Respostas

Hebertbc

Olha quando vou salvar dados geralmente faço um Bean e salvo ele em xml com o XSTREAM, facilita a vida.

http://xstream.codehaus.org/

ficaria mais o menos assim

XStream xstream = new XStream();
xstream.alias("person", Person.class);

Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));

String xml = xstream.toXML(joe);

Resultado

<person>
  <firstname>Joe</firstname>
  <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
  </phone>
  <fax>
    <code>123</code>
    <number>9999-999</number>
  </fax>
</person>

Recuperando do arquivo…

String xml = ....//seu metodo de ler o arquivo
Person newJoe = (Person)xstream.fromXML(xml);
M

Use Scanner (ao invés de BuferredReader) para ler e String.split para separar (ao invés de StringTokenizer):

Scanner sc = new Scanner(nomeDoArquivo);
while (sc.hasNextLine()) {
    String[] letras = sc.nextLine().split(",");
}
kemperacc

Eu achei a solução do XML melhor.

Imagina se o usuario do seu programa preenhe em um dos campos alguma informacao com “,” vai quebrar o layout do seu arquivo.

[]s

Kemper

M

kemperacc:
Eu achei a solução do XML melhor.

Imagina se o usuario do seu programa preenhe em um dos campos alguma informacao com “,” vai quebrar o layout do seu arquivo.

[]s

Kemper


Sem dúvida. Para uma aplicação de verdade onde pode-se ter dados diversos no arquivo use XML.

Mas para a necessidade dele, o XML seria complexidade a toa: pelo que ele disse é só um “programinha” e sempre serão letras separadas por vírgula. Nesse caso acredito que um arquivo de texto simples seja melhor.

Criado 11 de março de 2010
Ultima resposta 12 de mar. de 2010
Respostas 4
Participantes 4