【发布时间】:2014-01-26 08:51:22
【问题描述】:
我有以下代码用于使用 Apache POI 读取 Java 中的 excel 表。虽然文件存在,但为什么给我一个 FileNotFound Exception?
import org.apache.poi.hssf.usermodel.HSSFSheet;
import java.io.FileInputStream;
import java.io.File;
public class ReadFromExcel {
public static void main(String[] args) {
FileInputStream file = new FileInputStream(new File("C:\\Personal\\test.xlsx"));
}
}
我刚刚从 Windows 资源管理器复制并粘贴了文件位置,因此我知道该文件确实存在。那为什么Java找不到呢?
使用与“File”类而不是“FileInputStream”相同的路径,它工作正常。 FileInputStream 类中的路径有什么特别之处?
【问题讨论】:
-
尝试把你的文件放到另一个目录然后访问它...
-
还要仔细检查文件是否被任何其他进程(例如 Excel 本身)打开。在以下情况下会引发该异常 - 如果文件不存在,是目录而不是常规文件,或者由于某些其他原因无法打开以进行读取。
-
可能是它无权读取该文件或尝试将
//替换为System.getProperty("path.saperator"); -
@cox 此路径不是相对路径,绝对路径在 Java 中有效。 FileInputStream 没有任何方法,例如“fromURL”。你到底在说什么?
-
以后,请复制并粘贴准确的错误信息!!!!!!您的帖子听起来像是运行时错误(FileInputStream 无法打开“C:\Personal\test.xlsx”)。您的解决方案意味着它实际上是一个编译错误!两种完全不同的东西;两种完全不同的解决方案。请 - 将来,请始终发布 EXACT 错误。