我有一个文本文件text.txt,位于类输出根目录中。
当我使用新文件(“text.txt”)时,我收到了java.io.FileNotFoundException。
我的输出结构很喜欢
com
mycompany
test.class
text.txt
有什么问题,如何解决?
答案 0 :(得分:5)
如果您没有为文件提供绝对位置,则会从您启动程序的位置(您的工作目录)进行搜索。因此,在与该文件相同的目录中启动您的应用程序,或将文件移动到您要启动的位置。
如果你想读取相对于你的类路径的文件,你需要做这样的事情......
reader = new BufferedReader(new InputStreamReader(
getClass().getClassLoader().getResourceAsStream("test.txt")));
答案 1 :(得分:1)
它将使用当前的工作目录。从Java文档(http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#File%28java.lang.String%29):
默认情况下,java.io包中的类始终解析当前用户目录的相对路径名。此目录由系统属性user.dir命名,通常是调用Java虚拟机的目录。
答案 2 :(得分:0)
new File("text.txt")
与您的工作目录相关。您可以使用this.getClass().getResourceAsStream("text.txt")
从类路径加载文件。