PQ da null pointer

5 respostas
F
Galera tenho esse codigo aqui e naum sei ´pq da nullPointerException
public void leTexto() throws IOException{
			file = new File("Z:\PMP\Perguntas_Word\Cópia de capitulo5.txt");
			FileReader reader = new FileReader(file);
			BufferedReader leitor = new BufferedReader(reader);
					
			String linha =null;
			while((linha = leitor.readLine())!=null) {
			    int cont=0;
			    String contador=null;
			    contador=contador.valueOf(cont);
			    
				if(linha.startsWith(contador)){
					System.out.println("Pegunta "+(cont+1)+" "+linha);
					
				}else if(linha.startsWith("A") ||linha.startsWith("B") || linha.startsWith("C")||linha.startsWith("D") ){
					System.out.println("Resposta "+" "+linha);
				}
				
			}
			
			leitor.close();
			reader.close();
		}
		  
		
	
	public static void main(String[] args) throws IOException {
		 PovoamentoBanco povo = new PovoamentoBanco();
		 povo.leTexto(); 
	}
}

E tb diz que o metodo valeuof ta depreciado????

Se alguem puder ajudar!!!

5 Respostas

ragrottoli

Por causa do pedaço de código abaixo:

String contador=null; contador=contador.valueOf(cont);

Você acabou de inicializar a variável contador com “null” e logo após isso tentou invocar um método da mesma, sendo que ela ainda não possui nenhum endereço de memória atrelado.

Para isso, você tem sempre que construir um objeto antes de invocar um método. No seu caso:
String contador = new String("");

Especialmente no caso da String, você pode fazer direto:
String contador = “”;

DICA: capture a exceção e chame o método printStackTrace(). De lá você conseguirá saber a linha exata onde acontece a exceção.

Luiz_Aguiar
String linha =null;

Prefira sempre fazer:

String linha = “”; ou
String linha;

nessa caso tera que atribuir um valor no decorrer do código, o que lhe permite em alguns casos detectar erros em tempo de compilação. Por exemplo:

String teste;
System.out.println(teste);

Vai te retornar: The local variable teste may not have been initialized.

Falow!

kina

Luiz Aguiar:
String linha =null;

Prefira sempre fazer:

String linha = “”; ou
String linha;

nessa caso tera que atribuir um valor no decorrer do código, o que lhe permite em alguns casos detectar erros em tempo de compilação. Por exemplo:

String teste;
System.out.println(teste);

Vai te retornar: The local variable teste may not have been initialized.

Falow!

Apenas complementando:
Se a variavel estiver dentro de um método, se for fora do método e se você não alterar um construtor padrão, ele irá setar o valor padrão (no caso null)

Luiz_Aguiar

Exato! :smiley:

F

Galera agora fiquei meio confuso , eu coloquei esse msm codigo no netbeans 4.1 e rodou normalmente, mas no eclipse continua com erro mas tudo bem.
Usei a sua dica mas naum funcionou no eclipse!!!
mas valeu a ajuda!!!

Criado 9 de agosto de 2005
Ultima resposta 10 de ago. de 2005
Respostas 5
Participantes 4