Trabalhando com método StringTokenizer

4 respostas
A

Tenho um arquivo de texto para ler os dados. Esse arquivo tem várias linha e cad linha tem um número diferente de colunas. Por exemplo, as 20 primeiras linha tem 30 colunas. As próximas tem 50, depois tem algumas com 20,etc. Estou usando o método StringTokenizer para ler o arquivo. O problema é que ele lê de maneira sequencial e eu queria fazer ele ler linha á linha. Como posso fazer isso. Aì vai o trecho do código que faz a leitura.

public void lb_receptor() {
    	
    	 try{
    	 	BufferedWriter bw = new BufferedWriter(new FileWriter("saida3.txt"));
     		BufferedReader bf = new BufferedReader(new FileReader("TRANSMISSAO ANX MONOPOLO 19JuL07.log"));
	 		while ((line = bf.readLine()) != null)
				{	
					
					StringTokenizer st = new StringTokenizer(line);
     				
     				while (st.hasMoreTokens()) {		
         				id = st.nextToken();
         		
     				}
				}

    	 }
     catch (IOException ioe) {
	ioe.printStackTrace();
	}

4 Respostas

T

acesse cada linha dentro do seu loop pela variavel ‘line’

Pedrosa

Você pode obter melhores resultados com Expressão Regular, e para cada tipo de resultado você cria um padrão.

while ((linha = leitor.readLine()) != null) {
    Pattern patternXpto = Pattern.compile("[suaRegra]");
    Matcher m = patternXpto.matcher(linha.trim());
    while(m.find()){
        System.out.println("ocorrencia 1 " + m.group());
    }

}
A

Vou pesquisar isso que vc falou e depois coloco aqui o resultado. Valeu!!!

A

Consegui resolver o me problema inserindo uma tag no final da linha para saber até onde é para ler. Valeu pelas respostas de vcs!!

Criado 24 de julho de 2007
Ultima resposta 26 de jul. de 2007
Respostas 4
Participantes 3