【问题标题】:I'm trying to read file in java it works if i just created the file but after while it will not work我正在尝试在java中读取文件,如果我刚刚创建了文件,它可以工作,但之后它就不能工作了
【发布时间】: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


【解决方案1】:

问题已通过重新启动挂载文件的服务器解决

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多