如何修复“由于另一个进程正在使用它而无法访问文件”

时间:2019-04-19 04:03:38

标签: java

我正在运行一个程序,它将根据条件调用代码。

    if (charCount >= 152) {
        new InformixToPDF().createPdflandscape( DESTINATION + 
                "\\" + new_file_name + "_" + df.format(new Date()) + ".pdf",source);            
        }
    //function to call for portrait conversion
    else {
        new InformixToPDF().createPdfportrait( DESTINATION + 
                "\\" + new_file_name + "_" + df.format(new Date()) + ".pdf",source);
         }

如果满足其他条件,则在这里调用代码。

  public void createPdfportrait(String dest,String source) throws DocumentException, IOException {
   File myfile = new File(source);
   Document document = new Document(PageSize.A4);

   document.setMargins (20, 0, 50, 80); 
   PdfWriter.getInstance(document, new FileOutputStream(dest));
   document.open();

   br = new BufferedReader(new FileReader(source));
   String line;
   Paragraph p;

   //PDF font configuration
   Font normal = new Font(FontFamily.COURIER, 7);
   Font bold = new Font(FontFamily.COURIER, 7, Font.BOLD);

   //add page into PDF
   boolean title = true;
       while ((line = br.readLine()) != null) {
       p = new Paragraph(line.length() == 0 ? " ": line, title ? bold : normal);
       document.add(p);
       }
       document.close();

       System.out.println("Informix4gl report file " + source + " has been converted to PDF");
       Path sourcePath = Paths.get(source);
       Path destinationPath = Paths.get(MOVE);
       try {
           Files.move(sourcePath, destinationPath,
                   StandardCopyOption.REPLACE_EXISTING);
       } catch (IOException e) {
           e.printStackTrace();
       }
    }

完成转换后,当前文件。需要使用此代码将其移动到另一个文件夹,其中“源”是当前文件,“移动”是目标文件夹。

   Path sourcePath = Paths.get(source);
   Path destinationPath = Paths.get(MOVE);
   try {
       Files.move(sourcePath, destinationPath,
               StandardCopyOption.REPLACE_EXISTING);
   } catch (IOException e) {
       e.printStackTrace();
   }

执行代码并成功创建pdf,但错误“ java.nio.file.FileSystemException:O:\ xx \ yy \ zz \ test-> O:\ xx \ yy \ zz \ Folder C:进程无法访问该文件,因为该文件正在被另一个进程使用。”出现。

如何解决此问题,以及应该对代码进行哪些更改以避免这种错误?

我知道这些问题经常被问到,但是没有一个能解决我的问题。但是我可能想念一些。

0 个答案:

没有答案