无法访问java项目

时间:2016-04-06 07:16:27

标签: java

我正在尝试访问项目文件夹中的文本文件output.txt。下图显示了文件夹结构。

enter image description here

String file=".\\testFiles\\output.txt";
BufferedReader br=new BufferedReader(new FileReader(file));

当我尝试使用上面的代码访问该文件时,我得到以下异常。

 java.io.FileNotFoundException: .\testFiles\output.txt (No such file or directory)

我尝试过不同的文件路径格式但没有一种工作。我认为问题在于文件路径格式。

提前致谢。

4 个答案:

答案 0 :(得分:1)

如果我没记错的话,您可以在当前目录中获取文件夹/文件,如下所示:

File folder = new File("testFiles");

然后你可以通过获取absolutePath并用它创建一个新文件来打开文件,如下所示:

File file = new File(folder.getAbsoluteFile() + File.separator + "output.txt");

我不确定,但我认为你也可以这样做:

File file = new File("testFiles/output.txt");

我希望这会有所帮助:)

P.S。这都是未经测试的,所以它可能无效。

答案 1 :(得分:1)

从你有一个webcontent文件夹的事实判断我认为这是一个web项目,可能打包成战争?在这种情况下,您要做的是将相应的文件与类一起打包,并使用以下内容访问它:

Thread.currentThread().getContextClassLoader().getResourceAsStream("output.txt")

如果您将testFiles文件夹添加为源文件夹,则上述代码将起作用(这意味着它将与类打包并在运行时可用)

好处是这种方式可以保持相对路径,不需要绝对

答案 2 :(得分:1)

我认为您的问题是由于您依赖于相对路径这一事实,因为您的路径以点开头,这意味着它将相对于用户目录(系统属性user.dir的值)所以我相信你的用户目录不是你所期望的。你可以做的调试就是:

System.out.println(new File(file).getAbsolutePath());

由于这种方法,您将能够快速了解​​绝对路径是否正确。

答案 3 :(得分:-2)

您必须将文件声明为新文件:

File yourFile = new File("testFiles/output.txt");