Trabalhando com txt

ola pessoal.
Gostaria de saber como faço para trabalhar com txt sem que para isso seja necessário inserir o caminho completo do arquivo. Sei que para isso é necessário que o arquivo esteja no mesmo diretório da classe, mas, se eu chamo o arquivo sem o caminho, o programa não consegue encontrá - lo.
Exemplo: Ao invés de chamar o txt assim:
File arquivo = new File(“texto.txt”);

Tenho que chama-lo assim:
File arquivo = new File(“c:\documents and settings…\texto.txt”); (coloquei reticencias pq o caminho é longo)

para funcionar.

Tem ctz q o txt está no mesmo diretorio das classes???
Se estiver usando IDE tenha ctz q está no lugar certo :wink:

Bom, o Java não tem o conceito de diretório corrente (esse conceito não existe (ou não existia), por exemplo no Windows CE / Pocket PC, e em alguns outros sistemas operacionais).

Mas é possível fazer o seguinte: existe um construtor de File que aceita um outro File (ou uma String), que seria o diretório. Acho isso um pouco mais limpo, porque você sabe exatamente qual é o diretório onde você está gravando o seu arquivo. E de qualquer maneira ele aceita o nome “.” para eventual diretório corrente (mas o tal diretório depende de como foi iniciado o Java. Por isso tente não usar “.” porque na verdade você não sabe exatamente onde está o “.” sem usar File.getCanonicalFile().

Por exemplo:

File meuDiretorioBase = new File ("C:\minhaAplicacao\meusDados");
String meuDiretorioBase2 = "C:\minhaAplicacao\meusDados";
// Construtor 1
File meuArquivo = new File (meuDiretorioBase, "meuArquivo");
// Construtor 2
File meuArquivo2 = new File (meuDiretorioBase2, "meuArquivo");

valeu andré, agora descobri o erro que cometi :oops:

Que tal:

new File( this.getClass().getResource("arquivo.txt") );

[quote=danieldestro]Que tal:

new File( this.getClass().getResource("arquivo.txt") );

Acho q isso nao funciona dentro de um JAR :roll:

//Digita-se o nome que se quer salvar…
String salvando = JOptionPane.showInputDialog(null,"Salvar:\nO arquivo sera salvo com extensao ‘.txt’ "
,“SALVAR”,JOptionPane.PLAIN_MESSAGE);

try{

 //Cria-se um arquivo com o nome digitado.txt...
 FileWriter arquivo = new FileWriter(salvando.toUpperCase()+".txt");
 BufferedWriter escrever = new BufferedWriter(arquivo);//abre o arquivo criado...
 escrever.write(jta.getText());//pega o q foi digitado no objeto jta(JTextArea)... e salva no arquivo criado
 escrever.close();//fecha o arquivo...

}catch(IOException io){

}