pmlm:
Para que o for de dentro?
for (int i = 0; i < this.listaArquivo.size(); i++) {
String[] separados = this.listaArquivo.get(i).split("\\s+"); // retira os espaços entre os dados deixando apenas um.
// Cria o objeto ELCO701Aquisicoes
EAquisicao aquisicao = new EAquisicao();
aquisicao.setDataHora(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(separados[2] + " " + separados[1] ));
aquisicao.setDp(new BigDecimal(separados[3].replaceAll(",", ".")));
aquisicao.setP(new BigDecimal(separados[4].replaceAll(",", ".")));
this.listaAquisicoes.add(aquisicao);
x = 0;
}
o primeiro for vai percorrer linha por linha tirando a tabulação do arquivo txt.
por isso o uso do slpit.
Tabela de Aquisições
Num. Registro Horário Data Canal 1 Canal 2
00001 10:55:58 17/09/2010 0,58 0
00002 10:56:01 17/09/2010 230,0 0
00003 10:55:58 18/09/2010 0,60 0
00004 10:56:01 18/09/2010 0,65 0
00005 10:55:58 19/09/2010 0,67 0
00006 10:56:01 19/09/2010 0,90 0
00007 10:55:58 20/09/2010 0,100 0
agora esse foreach, ele pega a linha e percorre ela separando os dados e armazena em atributos do objeto.
Exemplo:
quando percorrer o primeiro for ele pegara a primeira linha e vai retirar os espaços, ficara assim:
00001 10:55:58 17/09/2010 0,58 0
agora entra o foreach, que pegara essa linha e separa os dados nela
primeiro pegara o 00001 que vou descarta ele nao é setado em nenhum atributo do objeto
depois pega a hora 10:55:58 e seta.
if (x == 1) {
this.aquisicao.setHora(oData
.converter(separado, "HH:mm:ss"));
depois a data.
if (x == 2) {
this.aquisicao.setData(oData.converter(separado,
"dd/MM/yyyy"));
e assim por diante