Pessoal estou lendo um arquivo texto com StringTokenizer com o seguinte formato:
NumeroOS;DataAbertura;TamanhoPF;PercentualErros;DataEntrega;Obs
OS102086 ; 2010-03-15 ; 0 ; 0 ; 2010-03-18 ; Este é um teste de arquivo;favor não quevra lalalalal
O que eu quero fazer é quando chegar na Observação ele pegue todo o elemento mesmo se ouver um ( ; ) ponto e virgula pois ela pode conter esse tipo de caracter… não quero trocar o tipo de delimitador por isso preciso de um ajudinha.
segue codigo:
public void listener(UploadEvent event) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
UploadItem arquivo = event.getUploadItem();
try {
BufferedReader reader = new BufferedReader(new FileReader(arquivo.getFile()));
String dados[] = new String[7];
String linha = reader.readLine();
while (linha != null) {
StringTokenizer st = new StringTokenizer(linha, ";");
dados[0] = st.nextToken();
dados[1] = st.nextToken();
dados[2] = st.nextToken();
dados[3] = st.nextToken();
dados[4] = st.nextToken();
dados[5] = st.nextToken();
String numeroOS = dados[0];
Date dataAbertura = (Date) df.parse(dados[1]);
float tamanhoPF = Float.parseFloat(dados[2]);
float percentualErros = Float.parseFloat(dados[3]);
Date dataEntrega = (Date) df.parse(dados[4]);
String obs = dados[5];
//Cria um Objeto OS
Os os = new Os();
os.setNumero_os(numeroOS);
os.setNum_asc(getAscSelecionada());
os.setData_abertura_os(dataAbertura);
os.setTamanho_pf_os(tamanhoPF);
os.setPerc_erros_os(percentualErros);
os.setObs_os(obs);
os.setStatus_os(1); //sempre será 1 - Aberto
os.setDataEntrega_os(dataEntrega);
//Inseri no Banco de Dados
OsControle controle = new OsControle();
controle.inserirImportacao(os);
linha = reader.readLine();
}
reader.close();
} catch (Exception excecao) {
//logger.error("Erro ao tentar efetuar o upload de arquivo", excecao);
}
}