Reader Diretório do arquivo

Primeiramente, eu não posso mudar a assinatura do método por motivos de especificação. A string diretórioEntrada deve conter o diretório absoluto do arquivo passado ao objeto [color=red]file[/color]. Já tentei descobrir um método que retorne onde o arquivo estava, mas não achei. :frowning:

Preciso recuperar este diretório a partir desde ponto, pois ele é dado na Main. Alguém vê uma solução para o meu problema? :stuck_out_tongue:

public void loadJSGF(Reader file) throws IOException{ String aux; String diretorioEntrada=""; String diretorioSaida="não importa"; diretorioEntrada = file.xxxx.yyyy; //aqui seria algo parecido com isso aux = Conversor.Converter(diretorioEntrada, diretorioSaida); callMkdfapl(diretorioSaida+aux); enableGrammar(diretorioSaida,aux); } }

A resposta que vou dar e você não quer ouvir é “não há como determinar, uma vez dado um Reader, qual é o arquivo usado como entrada”.

Digamos que você saiba que o Reader é sempre um FileReader (você pode fazer um instanceof para ver se é isso mesmo, e então fazer um cast). O problema é que o FileReader simplesmente não guarda qual foi o objeto File ou String usado para abrir o arquivo. Veja você mesmo na documentação de FileReader:

http://download.oracle.com/javase/6/docs/api/java/io/FileReader.html