Criando um Arquivo txt para ser usado por outra classe

1 resposta
rolipam

Olá galera do GUJ. Estou precisando salvar um arquivo txt contendo o IP da conexao (que será digitado pelo usuário do sistema) para poder ser usado por outra classe do mesmo sistema. Vou tentar explicar um pouco melhor. Na verdade o que eu tenho até agora é o seguinte:

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
/**
 *
 * @author RamiroPamponet
 */
public class ConexaoBD extends javax.swing.JFrame {

    Principal pri;
    
    final private String driver = "org.postgresql.Driver";
    private String url; // = "jdbc:postgresql://localhost:5432/fisio";;
    
    public String ip;
    
    final private String usuario = "postgres";
    final private String senha = "123";
    
    Statement stm;
    ResultSet rs;
    
    private Connection con, con1;
    
    ConexaoBean cb;
    public List<ConexaoBean> conexao;

    /**
     * Creates new form Conexao
     */
    public ConexaoBD() {
        initComponents();
        cb = new ConexaoBean();
        conexao = new ArrayList();
    }
    private void btConectarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        ip = tfIP1.getText() + "." + tfIP2.getText() + "." + tfIP3.getText() + "." + tfIP4.getText();
        cb.setIp(ip);
        conexao.add(cb);
        if (conexao.size() > 0) {
            String stringIp = conexao.get(0).getIp();
            url = "jdbc:postgresql://" + stringIp + ":5432/fisio"; // Aqui ele Pega o ip Normalmente
            JOptionPane.showMessageDialog(null, url); 
            conectaBD();            
        }
    }                                          

    public Connection conectaBD() {
        try {
            Class.forName(driver);
            // Recuperar a url no Arquivo Salvo
            con = DriverManager.getConnection(url, usuario, senha);
            JOptionPane.showMessageDialog(null, "Conectado ao Banco de Dados!");
            pri = new Principal();
            pri.setVisible(true);
            this.hide();

        } catch (ClassNotFoundException Driver) {
            JOptionPane.showMessageDialog(null, "Falha na Conexão com o Banco de Dados!" + Driver);
            limpa();
        } catch (SQLException Fonte) {
            JOptionPane.showMessageDialog(null, "Erro de Conexão!" + Fonte);
            limpa();
        }
        return con1;
    }

    public Connection conecta() {
            ip = conexao.get(0).getIp();
            url = "jdbc:postgresql://" + ip + ":5432/fisio"; // Aqui não pega o ip
            JOptionPane.showMessageDialog(null, url);
            try {
                Class.forName(driver);
                // Recuperar a url no Arquivo Salvo
                con = DriverManager.getConnection(url, usuario, senha);
                JOptionPane.showMessageDialog(null, "Conectado ao Banco de Dados!");


            } catch (ClassNotFoundException Driver) {
                JOptionPane.showMessageDialog(null, "Falha na Conexão com o Banco de Dados!" + Driver);
                limpa();
            } catch (SQLException Fonte) {
                JOptionPane.showMessageDialog(null, "Erro de Conexão!" + Fonte);
                limpa();
            }   
        return con;     
    }

    public void desonecta() {
        boolean result = true;

        try {
            con.close();
            //JOptionPane.showMessageDialog(null, "Conexão Fechada!");
        } catch (SQLException erroSQL) {
            JOptionPane.showMessageDialog(null, "Não Foi Possíve Fechar o Banco de Dados!");
            result = false;
        }

    }

    public void executeSQL(String sql) {
        try {
            stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            rs = stm.executeQuery(sql);


        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Executar o Comando!");
            ex.printStackTrace();
        }
    }

o método private void btConectarActionPerformed(java.awt.event.ActionEvent evt) gera uma string contendo o ip digitado pelo usuário, para compor a url da conexao com o banco de dados. Nesse caso, até uma solução mais simples resolveria

private void btConectarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        ip = tfIP1.getText() + "." + tfIP2.getText() + "." + tfIP3.getText() + "." + tfIP4.getText();
        url = "jdbc:postgresql://" + ip + ":5432/fisio"; // Aqui ele Pega o ip Normalmente
        JOptionPane.showMessageDialog(null, url); 
        conectaBD();            
    }

porém minha intenção era tornar o ip disponível para ser utilizado também pelo método conecta() (que é o método utilizado pelas minhas telas do sistema para salvar, alterar, excluir, mostrar os dados e navegar pelos dados) armazenando o ip em um ArrayList, mas não obtive êxito (no método conectaBD está tudo ok, mas no método conect() a variável ip me retorna null). Então, acho que minha última tentativa seria criar um arquivo txt externo para salvar esse ip e depois recuperá-lo para ser usado pelo método conecta(). Meu problema é que não sei trabalhar com IO. Gostaria de uma “mãozinha” para criar 2 métodos na minha classe. Um para criar o arquivo (assim que o botão conectar fosse pressionado) e outro para ler o arquivo e “pegar” o ip salvo nesse arquivo e montar minha String url. Mais uma coisa. Seria possível, toda vez que uma nova tentativa de conexao fosse feita, apagar o arquivo existente e gerar um novo arquivo txt? Assim ao abrir o arquivo para leitura sempre teria apenas uma linha.

1 Resposta

rolipam

Já Resolvi meu problema!

Criado 27 de agosto de 2012
Ultima resposta 28 de ago. de 2012
Respostas 1
Participantes 1