Gravando em arquivo

7 respostas
V

pessoal, to precisando de ajuda, sou iniciante em java, e estou desenvolvendo um sisteminha aqui que grava num arquivo os dados digitado pelo usuário em um formulário, mas na hora que eu instancio a classe FileWrite que grava no arquivo, da uma um erro NullPointerException, alguém sabe o que é isso e como resolver?? Obrigado.

7 Respostas

Pedrosa

Como esta seu metodo que grava o arquivo?

Algum valor esta chegando null causando a excecption.

J

o String que você passa para o filewriter gravar foi instanciado???

gilmaslima

posta seu código que fica mais fácil te ajudar…

brunocl14

posta o código ae pra gnt poder da uma ajuda. de cara imprima o valor da variável String a ser escrita pra saber se é nula.

V

ok vou postar o codigo.

ao click do botão gravar será executado o seguinte codigo:

private void button1ActionPerformed(java.awt.event.ActionEvent evt) {

Dados seta = new Dados();

//passo como parâmetro para os métodos da classe dados os valores digitados pelo usuário no formulário princiapl nos JTextFiel.

seta.setCodigo(Integer.parseInt(jcodigo.getText()));

seta.setContato(jcontato.getText());

seta.setEmpresa(jempresa.getText());

seta.setFone(jfone.getText());

seta.setDd(jdd.getText());

Cria_Arquivo c = new Cria_Arquivo();

c.Cria_Arquvo();

// Classe dados

public class Dados   {

private int codigo;

private String contato ;

private String empresa ;

private String fone;

private String dd;
public int getCodigo() {

return codigo;

}
public void setCodigo(int codigo) {
    this.codigo = codigo;
}

// enfim métodos get e set para todos os atributos da classe.

// agora a classe que grava os dados no arquivo;

public class Cria_Arquivo {

public void Cria_Arquivo()
{

try {

FileWriter cria = new FileWriter(new File(d:/agenda/contatos.txt), true);

Dados pega = new Dados();

cria.write(String.valueOf(pega.getCodigo())); // converto  a variável em string ja que codigo é do tipo int;

cria.write(pega.getContato());

cria.write(pega.getEmpresa());

cria.write(pega.getFone());

cria.write(pega.getFone());

cria.write(pega.getDd());

cria.close();

}

// ou seja esta classe deveria gravar os valores que estariam nas variaveis da classe dados que eu passei através dos métodos set. Mas ai da o erro de NullPointerException, que eu ja andei pesquisando, e esse erro acontece quando tenta gravar ou faz referência a variáveis nulas. Mas as variáveis não deveria estar com os valores ja que chamo os métodos set e passo como parâmetro os valores digitados pelo usuário??

Pedrosa

O seu método Cria_Arquivo que esta furado.

Erro:

Dados pega = new Dados(); // aqui vc cria um novo objeto vazio

Voce deve passar o objeto Dados de Parametro no Cria_Arquivo(Dados dados), e sempre inicie metodos com letra minuscula e evite usar _

public void criaArquivo(Dados dados){
    FileWriter cria = new FileWriter(new File("d:/agenda/contatos.txt"), true);
    cria.write(String.valueOf(pega.getCodigo())); // converto a variável em string ja que codigo é do tipo int;
    cria.write(dados.getContato());
    cria.write(dados.getEmpresa());
    cria.write(dados.getFone());
    cria.write(dados.getDd());
    cria.close(); 
}
V

primeiramente mto obrigado, funcionou perfeitamente.
era isso mesmo que estava errado.

Segundo muito obrigado novamente pela dica dos métodos com letra minúscula e evitar o _ evitarei a partir de hoje.

sei que ainda vou ter problemas com isso que estou fazendo ja que não sei ainda aonde vou criar um laço para que o usuário continue adicionando dados, sem precisar ter que fechar o programa como esta agora, mas como ainda não quebrei a cabeça com ele ainda não vou pedir ajuda. Mas obrigado novamente . Valeu!!!

Criado 16 de dezembro de 2008
Ultima resposta 17 de dez. de 2008
Respostas 7
Participantes 5