PQ da null pointer

Galera tenho esse codigo aqui e naum sei ´pq da nullPointerException

[code] 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(); 
}

}[/code]

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

Se alguem puder ajudar!!!

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.

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!

[quote=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![/quote]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)

Exato! :smiley:

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!!!