gpt4 book ai didi

java - FileInputstream - FileNotFound(进程无法访问文件)。适用于应用断点

转载 作者:行者123 更新时间:2023-12-02 03:03:57 27 4
gpt4 key购买 nike

我将一个 xml 文件放入 Windows 计算机的 scanFolder 中,java 监视该文件创建事件并触发我的 processFileMethod。

       if(event.kindOf("create") {  
processFile (filePath); // call process file from watcher service
}

processFile(Path filePath) {
FileInputStream fileInputStream = null;
File inProcessFile = new File(filePath.toString());
// inprocess file exists at this point

try
{
fileInputStream = new FileInputStream(inProcessFile);
} catch (Exception e)
{
// filenotfoundexception thrown.
} finally {
fileInputStream.close();
}

}

问题

有东西保留着文件(Windows native ?)。应用断点会为其提供足够的延迟,但如果没有断点,则会引发异常。

尝试过 - file.canRead、canWrite、canExecute、exists - 在实例化之前进行所有检查以进行验证。全部返回 true。

异常:

\java.io.FileNotFoundException: C:\scanFolder\File (4) - Copy.xml(该进程无法访问该文件,因为该文件正在被另一个进程使用)

最佳答案

这里的问题是,当您尝试创建“fileInputStream = new FileInputStream (inProcessFile);”时创建该文件的“其他”进程尚未完成。添加断点为进程完成和释放文件提供了足够的延迟,因此也不异常(exception)。在创建 FileInputStream 对象之前包含 if(inProcessFile.canRead()) 。

关于java - FileInputstream - FileNotFound(进程无法访问文件)。适用于应用断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42017013/

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