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