Senhores(as), preciso de uma ajuda para compreender o que está ocorrendo para a seguintes linhas contida num .txt. Eu lerei essas informações e as inserirei em um banco de dados. Cada coluna é separada por “;” e mesmo as que não tem informação devem ser populadas no bean. O problema ocorre quando tenho uma coluna vazia, apenas com o valor “;” …o token não conta tal coluna, abaixo tenho 14 colunas, mas ao rodar só reconhece 7 tokens…
ARQUIVO TXT
903;DÉBITOS;[telefone removido];;;; ;;;;;-30;-30;SALDO DEVEDOR REF. LOTE Nº 10;
903;DÉBITOS;20623;;08/01/2009;1; ;;;;;-10;-10;Tx. Adesão,AMIL SAÚDE,RENATA ALMEIDA ;
ROTINA LEITURA
private void processFile(HttpServletRequest request) throws BDOException {
try {
String transacao = getBufferFile().readLine();
while (transacao != null) {
StringTokenizer colunas = new StringTokenizer(transacao, ";");
while (colunas.hasMoreTokens()) {
int idVendedor = Integer.parseInt(colunas.nextToken().trim());
String operadora = colunas.nextToken().trim();
String numeroProposta = colunas.nextToken().trim();
String cliente = colunas.nextToken().trim();
String idLote = colunas.nextToken().trim();
String dataAdesao = colunas.nextToken().trim();
String parcela = colunas.nextToken().trim();
String dataPagto = colunas.nextToken().trim();
String valorPago = colunas.nextToken().trim();
String porcComissao = colunas.nextToken().trim();
String valorComissao = colunas.nextToken().trim();
String porcDesconto = colunas.nextToken().trim();
String valorDesconto = colunas.nextToken().trim();
String valorLiquido = colunas.nextToken().trim();
ProcessImport dto = new ProcessImport();
dto.setIdVendedor(idVendedor);
dto.setIdLote(idLote);
dto.setOperadora(operadora);
dto.setCliente(cliente);
dto.setNumeroProposta(numeroProposta);
dto.setCliente(cliente);
dto.setDataAdesao(dataAdesao);
dto.setParcela(parcela);
dto.setDataPagto(dataPagto);
dto.setValorPago(valorPago);
dto.setPorcComissao(porcComissao);
dto.setValorComissao(valorComissao);
dto.setPorcDesconto(porcDesconto);
dto.setValorDesconto(valorDesconto);
dto.setValorLiquido(valorLiquido);
FactoryDAO.getProcessImport(request).insert(dto);
transacao = bufferFile.readLine();
dto = null;
}
}
} catch (IOException e) {
throw new BDOException("Erro ao processar o arquivo.");
} catch (DAOException e) {
throw new BDOException("Erro ao inserir os registros.");
}
}