【问题标题】:FileNotFound Exception in Java when the file already exists文件已存在时 Java 中的 FileNotFound 异常
【发布时间】:2020-06-25 22:02:02
【问题描述】:

我正在尝试打开一个 Excel 文件,其完整路径存储在字符串 filePath 中。 filePath 的内容是C:/fullpath/Names.xlsx。我正在尝试以下代码:

String filePath = jobject.get(Constants.SOURCE_PATH).toString();
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);

它在最后一条语句中向我抛出以下错误。

java.io.FileNotFoundException: "C:\fullpath\Names.xlsx" (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)

此外,该文件未保存在工作目录中。不确定这里有什么问题。可以请一些 Java 专家研究一下吗?

谢谢

【问题讨论】:

  • 异常是说文件不存在 - 如果我对现有文件使用您的代码,我不会得到异常。所以很可能该文件真的不存在(可能是错字?)。
  • @assylias 该文件确实存在。
  • @Swap2019:我假设在您的C: 驱动器的根目录中没有名为fullpath 的目录,对吧?当 JVM 告诉您文件不存在时,它几乎总是正确的。也许向我们展示带有路径的 actual 错误消息以及显示该文件的资源管理器屏幕截图可能会有所帮助?一个常见错误是资源管理器中的“隐藏常用文件扩展名”设置。

标签: java excel


【解决方案1】:

这对我有用:

String filePath = Paths.get(Constants.SOURCE_PATH).toString();
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);

常量.java

// or static final String SOURCE_PATH = "D:/workspace/files/names.xlsx";
static final String SOURCE_PATH = "D:\\workspace\\files\\names.xlsx";

如果我故意弄错文件名,我会得到和你一样的错误。

您的文件可能并不真正存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2021-08-29
    相关资源
    最近更新 更多