Pessoal, tenho um problema que é o seguinte,
tenho um arquivo TXT que tem varios campos separados por “|”.
suponhamos o seguinte arquivo:
|I200|0120081201000001001|01122008|63310,34|N|
|I250|49102||61710,34|C|0120081201000001001000002001001C0110101||TRANSF. DE VALOR||
|I250|1322002||61710,34|D|0120081201000001001000002001001D0110101||BAIXA PATR.||
|I250|39602||1600,00|C|0120081201000001001000004001001C0110101||TRANSF. DE VALOR||
|I250|1310104||1600,00|D|0120081201000001001000004001001D0110101||TRANSF. DE VALOR||
|I200|0120081201008810001|01122008|56058,54|N|
|I250|38302||169,60|D|0120081201008810001000001001001D0110101||PARIZZI-REP.||
note que existem campos nao preenchidos… aparecem como ||
quando este campo entra no token, ele nao reconhece os espaços “null” e portanto gera um erro no meu codigo, pois em cada campo eu dou um next.token.
Alguem sabe como posso resolver este problema??
abaixo meu método que trata o arquivo:
public void montaDiario(String impTabela, String supTabela) throws FileNotFoundException, IOException {
//TABELAS I200 inicializa as variáveis
String NUM_LCTO=null;
String DT_LCTO=null;
String VL_LCTO=null;
String IND_LCTO=null;
//TABELAS I250 inicializa as variáveis
String COD_CTA=null;
String COD_CCUS=null;
String VL_DC=null;
String IND_DC=null;
String NUM_ARQ=null;
String COD_HIST_PAD=null;
String HIST=null;
String COD_PART=null;
vetLinha = new ArrayList();//cria um vetor para armazenar a linha
StringTokenizer token; //inicializa o token
String TABELA=null;//inicia a string q armazena o tipo de tabela
String linha;//instancia a string da linha
if (resp != JFileChooser.CANCEL_OPTION) {//se a resposta do dialog of ok, entra
BufferedReader arq = new BufferedReader(new FileReader(this.arquivoEnd));//abre o arquivo especificado
linha = arq.readLine(); //inicializa a variavel linha
while ((linha=arq.readLine()) != null){//enquanto existir linha
token = new StringTokenizer(linha, "|"); //inicializa o token
TABELA = token.nextToken();//pega o nome da tabela na linha
if (TABELA.equals(supTabela)){//se a tabela é a superior
while(token.hasMoreTokens()){//e enquento tiver tokens
NUM_LCTO = token.nextToken();
DT_LCTO = token.nextToken();
VL_LCTO = token.nextToken();
IND_LCTO = token.nextToken();
}//fim do while tokens
}//fim do if supTabela
else if (TABELA.equals(impTabela)){//se não se a tabela for a que quero importar
while(token.hasMoreTokens()){//e enquanto existir um token
COD_CTA = token.nextToken();
COD_CCUS = token.nextToken();
VL_DC = token.nextToken();
IND_DC = token.nextToken();
NUM_ARQ = token.nextToken();
COD_HIST_PAD = token.nextToken();
HIST = token.nextToken();
COD_PART = token.nextToken();
}//fim do while token
//adiciona as variaveis no array
vetLinha.add(NUM_LCTO);
vetLinha.add(DT_LCTO);
vetLinha.add(COD_CTA);
vetLinha.add(COD_CCUS);
vetLinha.add(VL_DC);
vetLinha.add(IND_DC);
vetLinha.add(NUM_ARQ);
vetLinha.add(COD_HIST_PAD);
vetLinha.add(HIST);
vetLinha.add(COD_PART);
}//fim do if else
if (!vetLinha.isEmpty())//se o vetor nao é vazio,
pilha.add(vetLinha);//adiciona o array a pilha
}//fim while linha
arq.close();//fecha conexao do arquivo
}//fim if
}//fim do método