【发布时间】:2020-12-02 08:10:33
【问题描述】:
我遇到了一些奇怪的问题
我有一个从本地服务器读取文件的服务,我为此使用了 java.nio.file
如果文件刚刚创建或上传到文件夹,它可以完美运行,如果文件是旧的,它会给我这个错误
java.io.FileNotFoundException: File '/mnt/A/B/123.png' does not exist
为了让旧文件再次工作,我需要 ssh 服务器并打开目录并列出文件
在我这样做之后它恢复工作一段时间然后它再次停止并给出相同的上述错误
我使用的服务器是 Apache Tomcat/9.0.36 这是我的代码
return Files.readAllBytes(getPath(resourceLoader, uploadDir + "/" + directory + "/" + fileName));
我尝试使用 org.apache.commons.io.FileUtils 但运气不好,我遇到了同样的问题
return org.apache.commons.io.FileUtils.readFileToByteArray(getPath(resourceLoader, uploadDir + "/" + directory + "/" + fileName).toFile());
【问题讨论】:
-
这不应该发生。检查文件名是否相同。
-
您是否关闭了您之前阅读的文件(再试一次)?我不明白您所说的文件是(旧)是什么意思。显示更多代码
-
可能是操作系统方面的问题 (?):由于它是已安装的驱动器,因此临时卸载/重新安装可能会出现问题。
-
@priyranjan 该文件有时可以工作,所以我不认为它的命名或路径问题
-
@SusanMustafa 我的意思是旧的文件是在 3 多个小时之前上传到目录的,如果文件刚刚上传它会正常工作。我没有更多的代码可以分享它的一行方法
标签: java file tomcat nio readfile