我正在运行一个程序,它将根据条件调用代码。
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:进程无法访问该文件,因为该文件正在被另一个进程使用。”出现。
如何解决此问题,以及应该对代码进行哪些更改以避免这种错误?
我知道这些问题经常被问到,但是没有一个能解决我的问题。但是我可能想念一些。