Como verificar se ficheiro não existe?

paperless

Power Member
Pessoal, como é que posso verificar se determinado ficheiro do qual quero ler não existe usando um simples try - catch deste género?

Código:
try {
Scanner ficheiro = new Scanner(new File(nome_do_ficheiro));
}
ficheiro.close();
} catch (IOException e) {  System.out.println("Erro na leitura"); }

ou nem sequer é usando isto e estou a abordar o prob de forma errada?
 
Última edição:
Nem precisas de usar um try catch....basta fazeres o open do ficheiro. Depois se for:

em C++ fazes: if (ficheiro.is_open())

em C: if (ficheiro != NULL)

se o if for verdade o ficheiro exite se não existe segue para o else.
 
Faz o close, fora do try catch.
Há uma excepção que é o FileNotFoundException.
Se estiveres a ler da linha comandos, e não forneceres um args[0], podes usar o ArrayIndexOutOfBoundsException.
Mas o FileNotFoundException serve para isso, ou seja, se não existe o tal ficheiro(nome_do_ficheiro) na workspace.

Cumps
 
Hoje perguntei ao meu prof. e acho que ja percebi como fazer..estava a complicar..

Tudo o que tenho a fazer é tentar ler do ficheiro, se não der não dá (a tal filenotfoundexception) que desse, grava-se depois num novo ficheiro com esse nome usando outro método que tenho de fazer.
 
Tudo o que tenho a fazer é tentar ler do ficheiro, se não der não dá (a tal filenotfoundexception) que desse, grava-se depois num novo ficheiro com esse nome usando outro método que tenho de fazer.

O facto de não conseguires abrir um ficheiro não é sinónimo de que ele não existe; o processo pode não ter permissões para ler esse ficheiro. Logo, se vais criar um ficheiro com esse nome, vai dar-te erro, porque já existe um ficheiro com o mesmo nome.

Se queres saber se um dado ficheiro existe e respectivas permissões, sem o abrires, usa stat() ou access().
 
Para já ainda estou numa fase muito inicial na aprendizagem disto...

Já acabei o trabalho final.

Essa parte do try - catch so tive de fazer assim se alguem tiver itneressado em saber

Código:
try {
			[SIZE="1"]Scanner ficheiro = new Scanner(new File(nome_do_ficheiro));
			numero_de_pontuações_registado = ficheiro.nextInt();
			this.matriz = new Jogador[numero_de_pontuações_registado];
			for ( int i = 0; i < numero_de_pontuações_registado; i++) {
				this.jogadores = new Jogador(ficheiro);
				matriz[i] = jogadores;[/SIZE]
			}

			[SIZE="1"]ficheiro.close();[/SIZE]


		} catch ([COLOR="#ff8c00"]FileNotFoundException e[/COLOR]) { [COLOR="DarkOrange"]return;[/COLOR] 
}
 
Back
Topo