无法使用 java.io.FileInputStream 访问文件

无法使用 java.io.FileInputStream 访问文件

我正在使用 java servlet,我需要使用 java.io.Fileinputstream 类在 java 代码中访问文件 trail.xlsx,对于 Windows,我们必须添加驱动器号,但这里我们没有任何驱动器号来获取文件的完整合格路径,例如

c:\something\trial.xlsx 

甚至我也尝试过以下组合

/home/trail.xlsx

/media/win7/trail.xlsx

(首先将文件移动到以下位置)为什么这些地址不能与 Java 一起使用,是因为 Java 不支持 Linux 驱动器路径吗?还是有其他解决方法?我需要在 Java 中读取该文件,它说

java.io.FileNotFoundException: /home/trail.xlsx

感谢您宝贵的时间......

答案1

让我重新表述一下我之前的“回答”——我认为我没有充分表达我的意图。

在我十二年的 Java 编程生涯中,我在 Web 应用程序和独立应用程序、Linux 文件系统和 Windows 文件系统中使用过数十次 java.io.File 抽象(Java 在 Linux 文件系统上也能很好地运行)。

据我估计,超过 90% 的 FileNotFoundException 的原因是 Java 程序中嵌入的文件系统路径或文件名中的小输入错误,导致程序尝试访问不存在的文件而不是程序员希望访问的文件。

已给出您的原始帖子将 Excel 电子表格的文件扩展名引用为“xslx”,并且您当前的帖子仍然引用试用版轨迹.xslx文件名,(是的,它们只是简单的打字错误,但根据您上面提供的信息,简单的打字错误是我对您问题原因的最佳猜测)

然后我的回答是,您需要确保 Java 程序中使用的路径名和文件名(尤其是文件扩展名)与您要访问的文件的路径和文件名相匹配确切地请记住,Linux 文件路径是区分大小写,与 Windows 文件系统不同。

最后,如果您确认您的文件路径没有问题,请发布抛出异常时正在执行的 Java 代码,我会很乐意进一步检查它。

或者,请参考以下内容:

http://docs.oracle.com/javase/tutorial/essential/io/

了解使用 Java IO 组件的所有细节。

相关内容