Leitura de arquivo .txt

Olá pessoal,

Estou precisando fazer a leitura de um arquivo .txt basicamente assim:

Rua número Morador

Rua São José 21 Fulano de tal
Rua Alambique 102 Ciclado das Tantas
Rua Presidente Arthur da Silva Bernardes 22 José da Silva

Notem que a rua é composta de várias strings, cujo tamanho varia de acordo com o endereço
O mesmo problema ocorre para o Morador.

O código que eu tenho é o seguinte:

Dados dados = new Dados();

try {

while (lendoRuas.hasNext()){
			
	dados.setRua(lendoRuas.next());
	dados.setCasa(lendoRuas.nextInt());
	dados.setMorador(lendoRuas.next());	
}

}

Uma solução que pensei foi entrar com “;” no arquivo txt pra separar os dados. Assim:

Rua;número;Morador

Rua São José;21;Fulano de tal
Rua Alambique;102;Ciclado das Tantas
Rua Presidente Arthur da Silva Bernardes;22;José da Silva

Se essa solução for a certa, como explicar pro Java que o “;” é um caractere separador?
Qaulquer outra solução é muito bem-vinda.

Obrigado.

Vê este método:
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

Voce em primeiro lugar tem de separar por ","cada argumento.
e por “/n” cada linha.

em seguida retiras para uma string o conteúdo total.

[code]String total = “nome,morada morada,sobrenome/n”;

String[] linhas = total.split("/n");

for (String tmp : linhas) {

String[] argumentos = tmp.split(",");
String nome = argumentos [0];
String morada = argumentos [1];
String sobrenome = argumentos [2];
System.out.println("pessoa 1: -nome: "+nome+" morada: "+morada+" sobre nome: "+sobrenome )

}[/code]

Valeu pela ajuda pmlm e kikatus!

A ajuda de vocês foi fundamental.
O único problema é que o programa dá pau se ele encontrar algum espaço em branco no caminho.

Então precisei substituir os espaços por vírgula por exemplo:

Rua,São,José;21;Fulano,de,tal
Rua,Alambique;102;Ciclado,das,Tantas
Rua,Presidente,Arthur,da,Silva,Bernardes;22;José,da,Silva

Alguma sugestão quanto a isso?
Valeu, abraços!

se fizeste como eu disse e subestituiste os espaços por ‘;’ então suposta mente na variavel morada et´por exemplo: Alambique;102;Ciclado.
então é so sbsttuir por um ’ ’ o ‘;’ para obter a string direita.

private String remove_char(String string){
		
char[] str = string.toCharArray();
char[] filtro = {';'};
String str_out = "";
for (char c : str) {
for (char d : filtro) {
if(c!=d)
str_out+=c;
else
str_out+=' ';
}
}
return str_out;	
}

remove_char(morada);
System.out.println(morada);

fica bem ! :wink: