Arquivo é aberto duas vezes

2 respostas
E

Bom dia senhores,

Fiz um programa que abre o arquivo por meio de um trecho de seu titulo, neste meu caso, eu digito o numero da nota fiscal e ele abre o arquivo XML desta nota usando o browser.
Para isso eu leio os arquivos e escrevo em um txt para fazer a leitura e identificar se é o arquivo procurado, se for ele abre.
Meu problema é que o arquivo é aberto duas vezes e eu não consigo fazer com que ele não abra a segunda vez. Agradeço a atenção e obrigado pela ajuda, segue o código.

if(evento.getSource() == buscar)
         {
            String lista[];
            lista = new String[10000];
            File arquivo = new File("J:"); 
            File[] files = arquivo.listFiles(); 
            int i = 0;
            File f = null;
            if(files != null)
            { 
               int length = files.length; 			      	
               String entrada = numnota.getText();
               if (entrada.length() < 5 )
               {         
                  JOptionPane.showMessageDialog(null,"Digite todo o Número da Nota");							
               }
               else
               {                  
                  for(i = 0; i < length; ++i)
                  {     
                     f = files[i];             	
                     if (f.getName().contains(entrada))
                     {
                        File pdf = new File("J:\\"+f.getName());
                        try
                        { 
                           Desktop.getDesktop().open(pdf);
                        } 
                           catch(Exception ex)
                           { 
                              ex.printStackTrace(); 
                              System.out.println("Arquivo Não Encontrado."); 
                           }   
                        break;
                     }                                
                     if(f.isFile())
                     {                      
                        File empresas = new File("I:\\lista\\lista2.txt"); // instancia a variavel para ser usada no BufferedWriter
                        try { BufferedReader ler = new BufferedReader( new FileReader("I:\\lista\\lista2.txt"));  //Lê o arquivo
                           String linhas = ler.readLine(); 
                           BufferedWriter empresa2 = new BufferedWriter(new FileWriter(empresas));		  
                           empresa2.write(f.getName()+System.getProperty ("line.separator"));
                           empresa2.flush(); // grava o arquivo
                           empresa2.close(); // fecha o arquivo.
                           ler.close();
                           lista[i] = f.getName();   
                        } 
                           catch 
                              (FileNotFoundException ex) //caso não exista o txt exibe erro
                           {
                              System.out.println("Erro ao acessar arquivo lista"); 
                           } 
                           catch (IOException ex)  // se der pau ao abrir exibe erro
                           { 
                              System.out.println("Erro ao abrir o arquivo"); 
                           }
                     }  //fim da gravação dos dados em arquivo
                     else if(f.isDirectory())
                     {
                        System.out.println("Diretorio: " + f.getName());
                     }
                  }
               }
            }
         }// fim do buscar

2 Respostas

drsmachado

Por que isso?

File empresas = new File("I:\\lista\\lista2.txt"); // instancia a variavel para ser usada no BufferedWriter try { BufferedReader ler = new BufferedReader( new FileReader("I:\\lista\\lista2.txt")); //Lê o arquivo

E

Desculpe eu tinha comentando esta linha!
Servia pra um outro código meu e na hora de copiar este trecho pra usar neste código eu acabei não apagando esta parte inutil.

O resto deste trecho do código escreve em um txt os nomes dos arquivos de uma determinada pasta.

Obrigado.

Criado 18 de julho de 2012
Ultima resposta 18 de jul. de 2012
Respostas 2
Participantes 2