【发布时间】:2013-01-29 20:55:24
【问题描述】:
我想知道是否有人知道为什么我在尝试查找我知道目录中存在的文件时会收到java.io.FileNotFoundException。
我认为以下内容与它有关,如果我是正确的或者是否还有其他问题,请告诉我:
- 我将 JVM 从 1.7 降级到 1.6
- 文件名包含两个问号,所以文件名为
filename_?)?.data
当我使用 JVM 1.7 时,程序能够找到并打开它。但是,在降级到 1.6 后,它似乎找不到这个特定文件。所以我在想也许 JVM 1.6 无法读取带有问号的文件。
另外,我进行了两次/三次检查,文件确实存在于我的程序正在查找的目录中(它也能够在其中找到其他文件)。
下面是我的代码:
public Object readFromFile(String fileName) {
// Check for null
if (fileName == null || fileName.equals("")) return null;
Object obj = null;
ObjectInputStream input = null;
// Open file into (input)
try {
input = new ObjectInputStream(new FileInputStream(fileName + ".data"));
} catch (IOException e) {
e.printStackTrace();
}
// Read content of file into (obj)
try {
obj = input.readObject();
input.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return obj;
}
【问题讨论】:
-
您使用什么 API 来“查找文件”?如果没有一些代码,我们只能猜测出了什么问题。请阅读FAQ 和How to Ask,了解编写好的 SO 问题的技巧。
-
对不起。忘记添加代码了。我已经更新了我的问题。
-
您确定文件路径包含在变量
fileName中吗?尝试显示这个变量的值,看看它包含什么,看看它是否引用了实际的文件位置。 -
我知道函数和
fileName可以工作,因为我的程序会从目录中提取其他文件以及其他各种fileNames。 -
如需尽快获得更好的帮助,请发帖SSCCE。
标签: java jvm filenotfoundexception