[quote=jopss]Poxa, vlw mesmo thingol… um teste simples que nao tinha me passado…  :shock:
Na verdade nao resolveu a situacao, mas se chegou ao exato problema. O problema não está então no carregamento do texto, mas sim NO CARREGAMENTO PELO JTEXTAREA !!
O teste deu sim 3 segundos para o carregamento do arquivo, mas em torno de 40 segundos para carregar o buffer no jTextArea…
 jTextArea.setText(buffer.toString) 
Pode me ajudar nisso??? Seria alguma propriedade do componente??? Teria algum especifico para textos grandes???
vlw galera.
jopss [:p][/quote]
Não sei se vai te ajudar mas tá ai minha contribuição , espero que Seja util
    botao1.addActionListener(new ActionListener(){                          
        public void actionPerformed(ActionEvent Clik){                                                     
              ProgressBar.setValue(0);
              //JFileChooser fileChooser = new JFileChooser("."); 
              JFileChooser fileChooser = new JFileChooser("Y://Producao//feitos"); // Força a Abrir em uma Pasta Determinada
              fileChooser.showOpenDialog(tela);
              File arquivo_Entrada = fileChooser.getSelectedFile();
            if (arquivo_Entrada != null){
                        textArea1.setText("");
                        String s = LeitorBuffer.ler(arquivo_Entrada);
                        textArea1.append(s);
                        s = null;
                        arquivo_Entrada = null;
                        fileChooser = null;
                        textArea1.setCaretPosition(0);
                        int quant = textArea1.getLineCount();
                        maxValue = quant;
                        ProgressBar.setMaximum(maxValue - 2);
                       // System.out.println("Bytes e memoria livres  Antes de passar ganbage collection o System.gc() = " + Runtime.getRuntime().freeMemory());
                       System.gc();
                        for (int j = 0; j < quant; j++) {
                            final int percent = j;
                            // Função Para Barra de Processamento Começo
                            ProgressBar.setValue(percent);
                            // Função Para Barra de Processamento Final
                        }
            }
        }
    });
         
    botao2.addActionListener(new ActionListener(){                          
        public void actionPerformed(ActionEvent Clik){                                                     
           ProgressBar.setValue(0);
           if (!textArea1.getText().equals("")){  
              textArea1.setCaretPosition(0); // Mantem o Cursor no inicio
              Chave_Segundaria = "+$DJDE$";            
              Chave_Primaria = JOptionPane.showInputDialog(null, " Digite Ou Use o Leitor Optico Para Pesquisa ", "Box de Pesquisa", JOptionPane.INFORMATION_MESSAGE);
           }else{
                JOptionPane.showMessageDialog(null, "            Não Foi Selecionado Nenhum Arquivo "+"\n"+"Por Favor Click em Abrir Para Selecionar o Arquivo "+"\n"+"                             a Ser Pesquisado", "                   Mensagem de Erro Verificar", JOptionPane.ERROR_MESSAGE) ;
                }
   
           if (Chave_Primaria != null){
               if (!Chave_Primaria.equals("")){   
                       int Codigo_de_Pesquisa = textArea1.getText().indexOf(Chave_Primaria.trim().toUpperCase(), posInicial);
                       if(Codigo_de_Pesquisa < 0){
                          JOptionPane.showMessageDialog(null, "    Codigo Não Encontrado   ");
                          posInicial = 0;   
                       }else{
                                                    
                          Cont_Reg++; 
                          
                          if(Cont_Reg > 1){
                                Monta_Cabecalho = false;
                            }   
                          //  System.out.println("Resultado da Variavel Boolean = "+Monta_Cabecalho);   //Converter Inteiro Para String
                            textArea1.requestFocus();
                            textArea1.select(Codigo_de_Pesquisa, Codigo_de_Pesquisa + Chave_Primaria.length());
                            posInicial = Codigo_de_Pesquisa + Chave_Primaria.length();
                            
                          int quant = textArea1.getLineCount();
                          maxValue=quant;
                          ProgressBar.setMaximum(maxValue-2);
                          
                          for(int i = 0; i < quant; i++){
                            try{
                                  int inicio = textArea1.getLineStartOffset(i);
                                  int fim = textArea1.getLineEndOffset(i);
                                  final int percent = i;
                             
                            // Função Para Barra de Processamento Começo
                                  ProgressBar.setValue(percent);
                            // Função Para Barra de Processamento Final
                            
                                  String linha = textArea1.getText(inicio, fim - inicio);
                                 // JOptionPane.showMessageDialog(null, "LINHA = " + (i + 1) + " = " + linha);
                                     if(linha.indexOf(Chave_Segundaria.trim().toUpperCase()) == 0 && posInicial != 0){   
                                         //System.out.println("Achou uuuu ");                              
                                         Cont_Lin = 0;
                                         Cont_DJDE++;
                                         
                                        if(Cont_DJDE == 1){
                                          Form1 = linha.trim().substring(0);    
                                          Form1 = Form1.replaceAll("_A3" , "_A4");
                                        }else if(Cont_DJDE == 2){
                                          Form2 = linha.trim().substring(0);
                                          Form2 = Form2.replaceAll("_A3" , "_A4");
                                        }                               
                                     }
                                 
                                 if (linha.indexOf(Chave_Primaria.trim().toUpperCase()) >0){
                                      
                                   Cont_Lin++;
                                                                                                                                            
                                    if(Cont_Lin == 1){ 
                                       Forms++;
                                    }else if(Forms >= 2){
                                        Forms = 0;
                                    }   
                                  
                                     if(Forms == 1 && Cont_Lin == 1){
                                        Form = Form1;
                                        Insere_DJDE = true; 
                                        Flag = 1;                                     
                                     }else if(Forms == 2 && Cont_Lin == 1){
                                        Form = Form2;
                                        Insere_DJDE = true;
                                        Flag = 2;
                                     }else { 
                                        Insere_DJDE = false;
                                        Line = 0;
                                        Total_Line = Cont_Lin-1;
                                     }    
                                    // System.out.println("cont_linha "+Cont_Lin);
                                    // System.out.println("Vedadeiro ou falso "+Insere_DJDE);                                  
                                    // System.out.println("Formulario "+Form);
                                 }
                                  
                                  // ***** Abaixo a Função Já Esta Funcionando Para Remissao Em A4 Começo
                                   if (linha.indexOf(Chave_Primaria.trim().toUpperCase()) > 0 || i < 4 && Monta_Cabecalho == true ){ 
                                            
                                      //  JOptionPane.showMessageDialog(null, " Cont_Lin = " + Cont_Lin +" Total_Line = " + Total_Line+" Formulario = " + Forms+" Flag = " + Flag);
                                   //  if(Total_Line > Cont_Lin){
                                   //   do {
                                   //     System.out.println("******************* Fazendo **********************");
                                   //     Line++;
                                   //     textArea2.setText(textArea2.getText()+"KKK = "+Line+"\r\n");
                                    //   }while (  Line <= Total_Line  );
                                    //  }
                                       
                                       if(Insere_DJDE == true){
                                        textArea2.setText(textArea2.getText()+Form+"\r\n");
                                        //System.out.println("Total_Line "+Total_Line);
                                       }
                                       textArea2.setText(textArea2.getText()+linha.trim().substring(0)+"\r\n");    
                                      // System.out.println(textArea2.getText()+" Flag "+Flag );
                                   }
                                 // ***** Acima a Função Já Esta Funcionando Para Remissao Em A4 Final
                            
                            }catch(BadLocationException ex){
                                 // possiveis erros são tratados aqui
                            } 
                          }    
                       }
               }else{
                  JOptionPane.showMessageDialog(null, "Não Foi Inserido o Codigo Para Pesquisa", "Mensagem de Erro Verificar", JOptionPane.ERROR_MESSAGE);
                    }   
          }   
        
        }         
    });
         
    botao3.addActionListener(new ActionListener(){                           
        public void actionPerformed(ActionEvent Clik){  
             ProgressBar.setValue(0);
             if (!textArea2.getText().equals("")){
                         //JFileChooser fc = new JFileChooser();                       
                         JFileChooser fc = new JFileChooser("R://REMISSÕES"); // Força a Abrir em uma Pasta Determinada
                 if(fc.showSaveDialog(Remissao.this) != JFileChooser.APPROVE_OPTION){
                        return;
                 }   
                       File arquivo_Saida = fc.getSelectedFile(); 
                    if(arquivo_Saida == null){
                         return;
                    }   
                       FileWriter writer = null;   
                      try{
 
                          writer = new FileWriter(arquivo_Saida);
                          writer.write(textArea2.getText());
                             int quant = textArea2.getLineCount();
                             maxValue=quant;
                             ProgressBar.setMaximum(maxValue-2);
                             for(int j = 0; j < quant; j++){
                               final int percent = j;
                               // Função Para Barra de Processamento Começo
                                ProgressBar.setValue(percent);
                               // Função Para Barra de Processamento Final
                             }
                         }catch(IOException ex){
                    //   Possiveis erros aqui
                         } 
                      finally{
                             if(writer != null){
                                 try{
                                  writer.close();
                                 }catch (IOException x){
                                // Codigo de erro a ser Inserido   
                                 }
                               }
                             }
               }else{            
                  JOptionPane.showMessageDialog(null, "Não Foi Selecionado Nenhum Registro", "Mensagem de Erro Verificar", JOptionPane.ERROR_MESSAGE);
                    }   
        }                                            
    });