Olá pessoal, estou precisando ler um arquivo de texto contendo informações sobre empresas
como cadastro de cnpj e outros, o arquivo possui uma sequencia, sendo possivel separar cada consulta e jogar em uma variavel diferente , não sei porque mas o BufferedReader não esta lendo todo o arquivo quando chega a + ou - 40% do mesmo o método readLine retorna o valor nulo, sinal de que chegou o fim do arquivo .
Alguem pode me ajudar ?
O Código esta ai :
[code] File Arquivotxt=null;
String linha;
StringBuffer Buffer;
boolean flagexit=false,flag=false;
java.util.ArrayList Arquivos = new java.util.ArrayList();
File Diretorio = new File("/mnt/");
jFileChooser1.setMultiSelectionEnabled(true);
jFileChooser1.setFileSelectionMode(JFileChooser.FILES_ONLY);
jFileChooser1.setCurrentDirectory(Diretorio);
int counter=0;
int retorno = jFileChooser1.showOpenDialog(null);
if(retorno==JFileChooser.APPROVE_OPTION) {
Arquivotxt = jFileChooser1.getSelectedFile();
try{
FileInputStream teste = new FileInputStream(Arquivotxt);
BufferedReader in = new BufferedReader(new FileReader(Arquivotxt));
while(((linha = in.readLine())!=null)){
Buffer = new StringBuffer();
flag=true;
flagexit=true;
while(flagexit){
linha = in.readLine();
if(linha!=null){
if((linha.indexOf("RELATORIO ANALITICO"))!=-1) //TRECHO INICIAL DE
flagexit=false; //CADA REGISTRO
} else flagexit=false;
}
if(linha!=null){
if((linha.indexOf("RELATORIO ANALITICO"))!=-1){
Buffer.append(linha+"\n");
linha = in.readLine();
if((linha.indexOf("RELATORIO ANALITICO"))==-1){
Buffer.append(linha+"\n");
while(flag){
linha=in.readLine();
if(linha.indexOf("+")==-1)//TRECHO FINAL DE CADA REGISTRO
Buffer.append(linha+"\n");
else {
Buffer.append(linha+"\n");
flag=false;
}
}
}
}
System.out.println(Buffer.substring(0));
Arquivos.add(Buffer.substring(0));
counter++;
}
}
in.close();
System.out.println("Numeros de registros "+(Arquivos.size()-1)+" contador ="+counter);
}catch(FileNotFoundException e){
e.printStackTrace();
System.out.println("Arquivo não encontrado");
}catch(IOException ex){
ex.printStackTrace();
System.out.println("Erro de entrada e saida");
}
VisuArqtxt visualiza = new VisuArqtxt(Arquivos,jTextAreaSCPC); //Classe que visualiza o ArrayList e mostra para o usuario os registros do arquivo
visualiza.show();
}[/code]