Salvando arquivo atraves de um JFileChooser

19 respostas
renatorudolf

Boa noite

Aê galera to apanhando mo cara no codigo abaixo, nao sei como fazer para salvar um arquivo atraves do JFileChooser.

Como faço pra continuar a linha abaixo ?

Há alguma coisa errada ?

public void salvaArquivo() throws IOException {
		
		JFileChooser salvandoArquivo = new JFileChooser();
		File nomeDoArquivo = new File("teste.txt");
		boolean criaArquivo = nomeDoArquivo.createNewFile();
		
		int resultado = salvandoArquivo.showSaveDialog(null);

		if (resultado == JFileChooser.APPROVE_OPTION) {
			File salvarArquivoEscolhido = salvandoArquivo.getSelectedFile();
			  
		
		}
	}

19 Respostas

ViniGodoy

O FileChooser, como o nome da classe já diz, só permite que você escolha um arquivo. Ele abre a caixinha com cara de “salvar” ou “carregar”, mas sua tarefa se resume a apenas “escolher” (choose).
Para salvar o arquivo, use um PrintStream, ou qualquer outra das opções de salvamento do java.

renatorudolf

Bom dia ViniGodoy

Como vc disse: “só permite que você escolha um arquivo” essa classe ja cria um arquivo automaticamente faltando somente escrever no arquivo ?

A classe PrintStream num só serve pra escrever no arquivo ?

ViniGodoy

Não, não cria absolutamente nada. Ela só deixa você escolher um arquivo, e ela te retorna um objeto do tipo File, que descreve um caminho no sistema de arquivos. O caminho poderá ser para um arquivo existente, no caso do open dialog, ou não, no caso do save dialog.

Você deve criar e escrever nesse arquivo usando outras classes, como a PrintWriter.
Ou acessar e ler esse arquivo, com classes como a BufferedReader.

renatorudolf

Entao o arquivo ja deve estar criado e escrito.
fiz certo no codigo lá em cima ?

ViniGodoy

Bom, criar aquele "teste.txt" foi um tanto inútil.

Eu também geralmente prefiro testar o contrário, para evitar indentação e para ficar claro que o método não faz nada caso a escolha não seja APPROVE_OPTION.

public void salvaArquivo() throws IOException {
    JFileChooser salvandoArquivo = new JFileChooser();
    int resultado = salvandoArquivo.showSaveDialog(this);
    if (resultado != JFileChooser.APPROVE_OPTION) {
        return;
    }

    File salvarArquivoEscolhido = salvandoArquivo.getSelectedFile();
}
renatorudolf

Onde jogo o arquivo escrito naquele codigo acima ?

ViniGodoy

Não sei, o que exatamente você quer salvar?

renatorudolf

um arquivo txt.

renatorudolf

um arquivo .txt

ViniGodoy

Então, agora você gera o arquivo .txt usando o salvarArquivoEscolhido

PrintWriter pw = new PrintWriter(new FileWriter(salvarArquivoEscolhido)); pw.println("Isso será gravado no arquivo!"); pw.close();

renatorudolf

bom dia ViniGodoy

Cara, deu certo, mas normalmente qdo é salvo um arquivo com nome existente ele pede pra substituir o arquivo.

Tenho que usar metodo pra isso ?
qual ?

valew pela força até agora

ViniGodoy

É só testar.

if (salvarArquivoEscolhido.exists() && JOptionPane.showConfirmDialog(this, "O arquivo já existe? Deseja sobrescreve-lo?") != JOptionPane.OK_OPTION)) { return; }

renatorudolf

então cara, n funcionou.

mesmo clicando ok, cancelar e até mesmo se houver algum arquivo com mesmo nome ele salva.

o q pode ser ?

renatorudolf

nao encotrei nada lá,

continuo com o mesmo problema, quando clico ok, cancelar ele gera o arquivo e salva, isso acontece até mesmo se houver algum arquivo com mesmo nome.

alguem ja passo por isso ?

renatorudolf

utilizei o metodo exists() dentro do if

salvarArquivoEscolhido.exists() parece que ele nao ta conseguindo verificar se um arquivo com determinado nome ja existe.

Alguem pode dar uma força

renatorudolf

Ninguem nunca passo por isso ?

renatorudolf

ae galera, pra quem tiver com a mesma dificuldade:

JEREMIAS_souza_lima

[quote]
Eu gostaria de saber como salva uma imagem pelo JFileChooser
[/code]

JEREMIAS_souza_lima

mas tem que ser uma imagem

Criado 11 de fevereiro de 2011
Ultima resposta 19 de jun. de 2012
Respostas 19
Participantes 3