Carregar objeto aparti do arquivo txt

Bom dia galera do fórum, estou precisando de uma mãozinha de vcs, preciso carregar um objeto do tipo Conexão com informação de uma arquivo txt, mas infelizmente não estou conseguindo fazer esse processo, abaixo vou posta a estrutura do arquivo txt e o método que estou tentando utiliza.

===========================================
conexao.........: LAVADOR
Driver..........: org.firebirdsql.jdbc.FBDriver
Lib.............: jdbc:firebirdsql
Caminho.........: C:/Lavador/bd/
End.IP/Servidor.: localhost
Porta...........: 3054
Banco...........: master
Usuário.........: SYSDBA
Senha...........: [C@182f726
===========================================
===========================================
conexao.: TRANSPORTADORA
Driver..........: org.firebirdsql.jdbc.FBDriver
Lib.............: jdbc:firebirdsql
Caminho.........: C:/Lavador/bd/
End.IP/Servidor.: localhost
Porta...........: 3054
Banco...........: AP
Usuário.........: SYSDBA
Senha..: [C@1f66c65
===========================================
===========================================
conexao.........: ADI
Driver..........: rere
Lib.............: erer1
Caminho.........: wewe
End.IP/Servidor.: 192.168.1.99
Porta...........: 3054
Banco...........: sibb
Usuário.........: SYSDBA
Senha...........: [C@9b8f86
===========================================

O método para ler o arquivo e preencher

[code]
//Este é o método que estou tentando usar mas não esta dando certo tenho que quebrar a String pelo o espaço.

public List obterConexao() throws Exception
{
List listaCon = new ArrayList<>();
Conexao con = null;
String arquivo = “/C:/Users/C01/Documents/NetBeansProjects/Arquivo/config_conexao.txt”;
Scanner scan = new Scanner(new File(arquivo));
while (scan.hasNext())
{
String linha = scan.nextLine();
String[] arrayLinha = linha.split(" ");

        con = new Conexao();  
        con.setNomeConexao(arrayLinha[0]);  
        con.setDriver(arrayLinha[1]);  
        con.setLib(arrayLinha[2]);  
        con.setCaminho(arrayLinha[3]);  
        con.setPorta(arrayLinha[4]);  
        con.setHost(arrayLinha[5]);  
        con.setNomeBanco(arrayLinha[6]);  
        con.setSenhaBanco(arrayLinha[7]);  
        listaCon.add(con);  
    }  

    return listaCon;  
}  [/code] 

alguém ai pode me ajuda a solucionar esse o carregamento desse objeto.

O que está dando errado, amigão?

Se a estrutura do arquivo esta exatamente assim o problema é o nextLine que lê apenas 1 linha de cada vez e não um bloco.
terá que armazenar as 9 linhas de um bloco e depois separa-las ou identificar linha a linha.

if(linha != null){ if(linha.startsWith("conexao")){ String[] arrayLinha = linha.split(" "); con.setNomeConexao(arrayLinha[1]); }else if(linha.startsWith("Driver")){ String[] arrayLinha = linha.split(" "); con.setDriver(arrayLinha[1]); } }

Tá aí uma maneira de pegar apenas os valores:[code]public class Teste{

public static void main(String[] args) throws Exception{
	String text = toString(new File("caminhoDoSeuArquivo.txt"));

	Pattern p = Pattern.compile("=+(.+?)=+", Pattern.DOTALL);
	Matcher m = p.matcher(text);
	while (m.find()){
		String match = m.group(1).trim();

		String[] parts = match.split("\\s+");

		for (int i = 1; i < parts.length; i += 2){
			System.out.println(parts[i]);
		}

		System.out.println();
	}
}

public static String toString(File f) throws IOException{
	StringBuilder builder = new StringBuilder();
	String linha = null;
	BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8"));
	while ((linha = in.readLine()) != null){
		builder.append(linha);
	}
	in.close();
	return builder.toString();
}

}[/code]Agora um detalhe, você está armazenando a senha de maneira errada. Você está imprimindo direto o array, que te dá uma linha como [C@182f726 e isso não é o array de chars que você quer, é a representação dele em String

se for possivel, use um properties no lugar de txt, fica muito mais facil para trabalhar

conexao= LAVADOR
Driver= org.firebirdsql.jdbc.FBDriver
Lib= jdbc:firebirdsql
Caminho= C:/Lavador/bd/
End.IP/Servidor=localhost

quero agradeçer a todos pela colaboração.
Lins_jr já usei o properties para seta uma variavel mas como ficaria a estrutura para carregar o List do objeto.

Vc poderia definir as chaves com um nome especifico, por exemplo


LAVADOR.Driver=org.firebirdsql.jdbc.FBDriver  
LAVADOR.Lib=jdbc:firebirdsql  
LAVADOR.Caminho=C:/Lavador/bd/  
LAVADOR.End.IP/Servidor=localhost  
LAVADOR.Porta=3054  
LAVADOR.Banco=master  
LAVADOR.Usuário=SYSDBA  
LAVADOR.Senha=[C@182f726  
===========================================  
===========================================  
TRANSPORTADORA.Driver=org.firebirdsql.jdbc.FBDriver  
TRANSPORTADORA.Lib=jdbc:firebirdsql  
TRANSPORTADORA.Caminho=C:/Lavador/bd/  
TRANSPORTADORA.End.IP/Servidor=localhost  
TRANSPORTADORA.Porta=3054  
TRANSPORTADORA.Banco=AP  
TRANSPORTADORA.Usuário=SYSDBA  
TRANSPORTADORA.Senha=[C@1f66c65  

Lins_jr, é como eu te falei eu já usei um Properties para seta apenas uma conexao como ficaria o metodo oberteConexao para carregar todas as conexoes cadastrada no txt
a minha finalidade é carregar o jcombobox só com os nomes das conexoes, e apos escolhe uma conexao seta os demais dados nos campos jtexfield

esse era o codigo q eu usar para seta apenas uma conexao

public static void lerArquivo() { try { File file = new File("Lavador.txt"); Properties prop = new Properties(); prop.load(new FileInputStream(file)); driver = prop.getProperty("driver"); url = prop.getProperty("url"); user = prop.getProperty("user"); senha = prop.getProperty("senha"); foto = prop.getProperty("foto"); } catch (IOException erro) { Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, erro); JOptionPane.showMessageDialog(null,"Nao foi possivel cria Conexao com o Banco de Dados! "+erro); } }

abaixo esta o link da tela q deseja implementa.

http://img199.imageshack.us/img199/9398/loginl.gif

Rodrigo Sasaki, assim eu sou meio leigo nesse mundo por isso acabo comentendo esse erros, como eu devou salvar corretamente a senha

Descontando o fato que você não deveria salvar a senha “do jeito que ela foi digitada”, e sim criptografada de algum modo, o jeito de você converter um array de char para uma string é com o construtor de String que recebe um char[]:

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#String(char[])

Exemplo:

String senha = new String (passwordField.getPassword());

entanglement , valeu meu jovem vou esta salvando dessa maneira agora vou usar md5 para criptografa a senha.