Galera,
estou com um grande problema em ler algumas especificas de um arquivo txt, para jogar numa tabela do banco e dela gerar um arquivo txt, com algumas condições. Meu arquivo tem as seguintes informações:
20112100000878 ADRIANO REIS DA SILVA
25112100000878 ADRIANO REIS DA SILVA
20112100002331 GEAN BATISTA DE LIMA
25112100002331 GEAN BATISTA DE LIMA
20112100002340 IGOR DIORGENIS SOARES DE SOUZA
230191Nome do pai invalido.
Quando a linha inicia com 25, os dados vão certinhos para uma tabela porque ele lê de cima p/ baixo, mas quando inicia com 23, eu tenho q pegar a linha anterior (do nome IGOR) e jogar em outra trabela (aki está o problema).
Será q alguem pode me dar uma dica de como resolver isso? Agradeço desde já pelas ajudas.
Segue abaixo um trecho do meu codigo:
try{
String linha = "";
FormFile arquivo = (FormFile)PropertyUtils.getSimpleProperty(form,"arquivo");
if(arquivo==null || arquivo.getFileSize()==0) {
request.setAttribute("erros","Erro: Arquivo não existe!");
return mapping.findForward("inicio");
}
BufferedReader br = new BufferedReader(new InputStreamReader(arquivo.getInputStream()));
linha = br.readLine(); //le a linha do cabeçalho
//tratando cabeçalho
String remessa = "";
if(linha.substring(0,2).equals("10"))
remessa = linha.substring(96,101);
else
remessa = "*****";
linha = br.readLine();
Tabela1 cp = null;
Tabela2 cp2 = null;
String matricula = "";
List listaCe = Collections.EMPTY_LIST;
List listaCo = Collections.EMPTY_LIST;
Object[] o = null;
Ce c = null;
Co co = null;
while(linha != null){
if(linha.substring(0,2).equals("25")){
cp = new Tabela1();
matricula = linha.substring(2,17).trim();
//continua, jogando informações do registro na tabela1
}else if(linha.substring(0,2).equals("13")||linha.substring(0,2).equals("23")||linha.substring(0,2).equals("93")){
cp2 = new Tabela2;
//COMO PEGAR A MATRICULA DA LINHA DE ACIMA DO REGISTRO Q COMEÇA COM 23 ??????
}
linha = br.readLine();
}
request.setAttribute("erros","Arquivo importado com sucesso!");
return mapping.findForward("inicio");
}