Guardar posições em um BufferedReader

2 respostas
Guitar_Men

Galera tenho o seguinte problema:
Estou lendo um arquivo de texto que deve ter uma estrutura parecida com essa:

1#etc
2#etc
1#etc
1#etc
2#etc
1#etc
1#etc
2#etc
1#etc

Cada “processamento” deve consumir 3 linhas, ou seja, cada vez que eu gerar uma informação eu preciso processar
1#etc
2#etc
1#etc
Isso me gera um lote certo ?? Porém não tenho garantia de que esta estrutura vai ser respeitada. Posso receber o arquivo da seguinte forma

1#etc
1#etc
1#etc
1#etc
1#etc
1#etc
1#etc
1#etc
1#etc
2#etc
1#etc

Então eu deveria descartar aquele monte de 1# do começo até que eu consiga formar meu lote (1#etc 2#etc 1#etc).
Estou fazendo da seguinte forma:

private void consisteArquivoFila(BufferedReader bufferReader)
    {
        String linhaAtual = null;
        String[] linhaSerializada = null;
        try
        {
            while (bufferReader.ready())
            {
                linhaAtual = bufferReader.readLine();
                linhaSerializada = linhaAtual.split("#");
                if (linhaSerializada[0].equals("1"))
                {
                    bufferReader.mark(1);
                }
                if (!linhaSerializada[0].equals("1"))
                {
                    break;
                }
            }
            bufferReader.reset();
            // o conteúdo dessa variável deve ser 1#etc mas esta vindo 2#etc ou seja o mark ta setando uma posição depois da que eu quero
            //linhaAtual = bufferReader.readLine();
        }
        catch (Exception e)
        {
        }
    }

Porém não consigo o resultado esperado, alguém conhece uma forma melhor de posicinoar o “ponteiro” bufferReader dentro do arquivo ??

Valew

2 Respostas

Guitar_Men

Ninguém ??..

eliangela

Dá uma olhada na classe LineNumberReader http://java.sun.com/j2se/1.4.2/docs/api/index.html e vê se resolve o seu problema.
até

Criado 4 de setembro de 2009
Ultima resposta 4 de set. de 2009
Respostas 2
Participantes 2