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.
Como esta seu metodo que grava o arquivo?
Algum valor esta chegando null causando a excecption.
o String que você passa para o filewriter gravar foi instanciado???
posta seu código que fica mais fácil te ajudar…
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.
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??
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();
}
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!!!