Acesso negado FileReader

Pessoal estou fazendo uns testes e to com um problema na hora de entrar em um diretorio e achar um arquivo

package controller;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.StringTokenizer;

public class ArquivoController {

	private String path;
	
	public ArquivoController(){
		
		path = "C:/Documents and Settings/meuUsuario/Desktop/teste1/";
		//path = ArquivoController.class.getResource("ArquivoController.class").toString();
		String aux;
		StringTokenizer st;
		Boolean flag = true;
		st = new StringTokenizer(path, "/");
		path="";
		while (st.hasMoreTokens()){
			aux = st.nextToken();
			if(!aux.equals("jar:file:")){
				if(!"!".equals(aux.substring(aux.length()-1)) && flag){
					path += aux.toString()+"\";
				}else{
					flag = false;
				}
			}
		}
		path = path.replaceAll("%20", " ");
		path = 	path + "database.txt";
		System.out.println(path);
	}
	
 
    public void getDataBaseConnection(){
    	try{
    		FileReader reader = new FileReader(path);
    		String linha = null;
            BufferedReader leitor = new BufferedReader(reader);  
            StringTokenizer st = null;  
            String serviceName;
            String port;
            String hostName;
        	int i = 0;
            while ((linha = leitor.readLine()) != null) {  
            	
               st = new StringTokenizer(linha, "|");  
               if(!(i==0)&& !linha.equals("#;")){
	               while (st.hasMoreTokens()) {
	            	   System.out.println("Entrou dentro");
	               }
               }
            i++;
            }  
            leitor.close();  
            reader.close();  
         } catch (Exception e) {  
            e.printStackTrace();  
         }  
      
    }
    
    public static void main(String[] args) {
    	ArquivoController teste = new ArquivoController();
    	teste.getDataBaseConnection();
	}
}

quando eu executo aparece este erro:

No Windows? a barra é invertida, tipo: C:\Documents and Settings\usuario\Desktop.
Mesmo assim se não me engano no java na hora de montar a string você tem que colocar duas barras: “C:\Documents and Settings\ctdaa\Desktop”.
Para fazer uma solução mais elegante você pode usar o File.pathSeparator (The system-dependent path-separator character, represented as a string for convenience.) para concatenar os nomes das pastas.

[quote=ctdaa]No Windows? a barra é invertida, tipo: C:\Documents and Settings\usuario\Desktop.
Mesmo assim se não me engano no java na hora de montar a string você tem que colocar duas barras: “C:\Documents and Settings\ctdaa\Desktop”.
Para fazer uma solução mais elegante você pode usar o File.pathSeparator (The system-dependent path-separator character, represented as a string for convenience.) para concatenar os nomes das pastas.[/quote]

Não faz diferença. O Windows suporta os dois separadores. O Java também se encarrega da conversão. Fora que a aplicação dele já faz a conversão também, naquela parte esquisita do StringTokenizer ali.

A pergunta que não quer calar é… esse arquivo está lá mesmo? Se vc der um ctrl+c no arquivo indicado pela exception e um ctrl+v na barra do windows explorer, ele abre?

hahah boa Vini, tinha resolvido e esqueci de falar… fui newbie mesmo…

na minha pasta tinha um arquivo database.txt, só que por algum motivo n foi encontrado… eu criei um outro = mesmo nome e foi… muito estranho mais foi!!!