gpt4 book ai didi

java - 如何检查文件是否正在被读取

转载 作者:行者123 更新时间:2023-12-01 15:45:19 25 4
gpt4 key购买 nike

有人可以告诉我是否可以检查文件是否正在被读取。如果正在读取它,那么我如何让我的程序等待,直到读取结束,以便它可以开始写入。

当我尝试写入正在读取的文件时,出现以下错误:

 net.sf.jasperreports.engine.JRException: Error trying to export to file : 
......(some errors not shown here) ....
Caused by: java.io.FileNotFoundException: D:\servers_installs\tomcat6_9494\webapps\testdoc\logs\xyz.pdf (The process cannot access the file because it is being used by another process)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:305)
... 19 more

最佳答案

我已经有一段时间没有使用 Java 了,但我相信您有一个选择是使用 try catch block 。如果捕获到异常,则说明写入失败,可以继续尝试,直到成功为止。下面的示例可能是正确的 Java 代码,也可能不是。但您应该了解总体思路。

boolean worked = false;
while (!worked && timeout<20)
{
try
{
// writing code here

// set worked to true
worked = true;
}
catch
{
// do nothing
}
}

确保它在单独的线程中运行。并且还要超时,以防出现另一个阻止写入发生的问题。希望有帮助。

关于java - 如何检查文件是否正在被读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7151716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com