Socorro por favor!

5 respostas
samea
Oi pessoal eu estou com muitos problemas em java mas, agora eu queria saber se alguem ai pode me ajudar em um problema mas simples, eu criei uma tela onde tem dois textField, nos quais eu tenho que colocar em um, eu tenho que colocar o mome com o qual eu quero salvar o arquivo txt e no outro textFiel eu tenho que colocar o caminho onde eu quero que esse arquivo seja salvo! E eh tambem criei um butao para salvar os dados o problema eh que esse butao me as opcoes de salvar onde eu quiser e como onome que eu quiser tambem, vcs sabem me dizer o que eu posso fazer fazer pra salvar o meu arquivo com o nome que eu coloquei no primeiro textField e no endereco que eu indicar no outro textField! Esse eh o codigo que eu estou usando no meu butao de salvar:
if(e.getSource() == CmdGerar){
        	        
            int res = Arquivo.showSaveDialog(this);
            if(res == JFileChooser.APPROVE_OPTION){
                File arq = Arquivo.getSelectedFile();
                try{
                    escreveArquivo(TxtArquivo.getText(), arq.getPath());
                } catch(IOException ioe){
                    JOptionPane.showMessageDialog(null, "Não foi possível salvar arquivo!");
                }
            }

        }
Alguem ai pode me dar uma dica por favor estou com muitos problemas em um programinha que eu tenho que desenvolver ate sexta! bjokas :shock:

5 Respostas

thiagotrss

Uai… Essa é fácil.
Voce pode salvar seu arquivo TXT de várias formas.

file = new File(path); FileWriter fileWriter = new FileWriter(file,true); PrintWriter printWriter = new PrintWriter(armazenador,true);

ai vc faz: printWriter.println(“Texto aqui”);
Vai escrevendo linha a linha.

Mas recomendo vc usar o RandomAccessFile.
É melhor e tem vááários métodos para escrever.

thiagotrss

Detalhe:

a variável path vai ser o valor do JTextField que guarda o path do arquivo, concatenado com o nome do arquivo que o usuário escrever.
Se o arquivo não existir, ele será criado.

davidtiagoconceicao

Complementando o que o colega disse:
Faça o seu JFileChooser permitir a seleção apenas de diretórios, assim:

fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

Depois, para criar o arquivo, pegue o endereço selecionado e concatene o nome do arquivo, assim:

String path = fileChooser.getSelectedFile().getPath();
path += "\nomeDoArquivo.extensao";
File file = new File(path);

Uma sugestão é exibir o JFileChooser de maneira “customizada”, trocando o botão salvar apenas por “Selecionar”, “Usar” ou o que achar mais conveniente, assim:

fileChooser.showDialog(parent, "Texto do botão ");
samea
Naum entende direito onde eu coloco o a variavel que vai receber o valor que sera o nome do arquivo? Bom eu fiz assim:
if(e.getSource() == CmdGerar){
        	
        	String path = null;
			File file = new File(path);   
        	try {
				FileWriter fileWriter = new FileWriter(file,true);
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}     
        	Writer armazenador = null;
			PrintWriter printWriter = new PrintWriter(armazenador,true);   
        	JFileChooser fileChooser = null;
			fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
			path = fileChooser.getSelectedFile().getPath();   
			path += "\nomeDoArquivo.extensao";   
			file = new File(path);
			fileChooser.showDialog(CmdGerar, "Arquivo gerado com sucesso!");  

        }
So que deu os seguintes erros quando eu clico no butao: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at java.io.File.(Unknown Source) at teste.LayoutConsulta.actionPerformed(LayoutConsulta.java:197) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

Me ajudem por favor
bjokas

davidtiagoconceicao

Mas que baita confusão hein guria?! :lol:
Porque você está atribuindo null às referências?!

Eu fui quase bonzinho contigo. Dá uma analisada no código abaixo. Falta só fazer a gravação no arquivo:

if(e.getSource() == CmdGerar){  
	JFileChooser fileChooser = new JFileChooser(); //Sugiro que o fileChooser não seja criado aqui, mas já esteja instanciado e configurado neste momento.
	fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
	if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
		String path = fileChooser.getSelectedFile().getPath();
		path += "\nomeDoArquivo.extensao";   // Substitua conforme quiser
		File file = new File(path);
		
		// Faça a gravação do arquivo aqui, usando o objeto file
	}
}

Imagino que funcione como você quer.

Criado 22 de janeiro de 2009
Ultima resposta 22 de jan. de 2009
Respostas 5
Participantes 3