[Resolvido]DUVIDA DIFERENÇA NOS METODOS

Opa galera to com uma duvida gostaria muito que vcs me falassem pq nao é mesma coisa,

[code]public class TesteArquivo {
FileWriter fileWriter = null; // aki estou criando uma variavel do tipo FileWriter
public void arquivo (String arquivo) {
try{
File file = new File (System.clearProperty(“user.dir”) +File.separator +“arquivo tosco.txt”);
fileWriter = new FileWriter (file, true);

	fileWriter.write(arquivo);

} catch (IOException e) {
	e.printStackTrace();
}finally{
	if(fileWriter != null){
		try {
			fileWriter.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

}
}
[/code]

DESSA FORMA DA ERRO MAIS NÃO E A MESMA COISA? QUAL Á DIFERENÇA PARA O DE CIMA?

[code]public class TesteArquivo {

public void arquivo (String arquivo) {
	try{
	File file = new File (System.clearProperty("user.dir") +File.separator +"arquivo tosco.txt");
	FileWriter fileWriter = new FileWriter (file, true); // aki estou istanciando a classe FileWriter 		
	fileWriter.write(arquivo);

} catch (IOException e) {
	e.printStackTrace();
}finally{
	if(fileWriter != null){ // MAS AKI DA O ERRO NA VARIAVEL fileWriter pq? se esta istanciada em cima?
		try {
			fileWriter.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

}
}[/code]

AJUDA AE GALERA?! VLW

O bixo… se você postasse a msg do compilador seria só traduzir. Deve ser undeclarede reference to fileWriter

A variavel fileWriter pertence ao try{} (isso é um escopo de visibilidade) nada do que for declarado ai será visto no restante. Da mesmas forma que você não consegue acessar do catch o que esta no try, você não consegue acessar do finally.

Agora se você declara a variável fora do try ai ela se torna pertencente ao escopo do método que esta inserida, então os tres try, catch e finally tem acesso.

Abraço.

coloca a variavel fora do try!!!

escopo de bloco,por isso nao vê! xD

Cara, não é “clearProperty” (que se deve usar apenas em casos extremamente específicos) e sim “getProperty”. “clearProperty” de “user.dir” ou “user.home” costuma deixar o Java malucão depois de executado.

Eu vi isso também, falei carai pra que serve o clear, maaas se ele ta usando deve ter algum objetivo… rsrs

opaaa Vlw ae Galera resolvido !!!