我在Intellij Idea和Windows 8.1上阅读文件时遇到了一些奇怪的麻烦。
我总是得到FileNotFoundException
。
以下是代码段:
public XlsReader(String fileName, String sheetName) {
open(fileName, sheetName);
}
public void open(String fileName, String sheetName) {
InputStream fis = null;
try {
if (sheetName == null || sheetName.isEmpty()) {
throw new IllegalArgumentException("Please, provide sheet name");
}
Logger.logDebug("PATH: " + new File(".").getAbsolutePath());
fis = new FileInputStream(fileName);
String resourceFilePath = this.getClass().getResource(fileName).getFile();
Logger.logDebug(resourceFilePath);
fis = new FileInputStream(resourceFilePath);
XSSFWorkbook workBook = new XSSFWorkbook(fis);
sheet = workBook.getSheet(sheetName);
getMetaData();
我无法理解为什么会这样:
new FileInputStream(fileName)
我有这个例外。 当从以下方面改变路径时:
xls = new XlsReader(" InputDataIndirect.xlsx"," Calculator");
为:
xls = new XlsReader(" test / InputDataIndirect.xlsx"," Calculator");
它现在有效。
这是项目进展:
我也尝试从类路径this.getClass().getResource(fileName).getFile()
加载文件,但它没有成功。
有什么建议吗?
答案 0 :(得分:2)
如果您正在从IntelliJ构思中运行主方法或测试,它会使用项目的根作为根来加载文件。因此,它会显示在new_automation
下,因此您需要将test
文件夹添加到路径中。
要更改此设置,您可以将运行配置中的 工作目录位置 更改为您希望其查找文件的位置。