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)
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");
//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){
}