我正在尝试访问项目文件夹中的文本文件output.txt
。下图显示了文件夹结构。
String file=".\\testFiles\\output.txt";
BufferedReader br=new BufferedReader(new FileReader(file));
当我尝试使用上面的代码访问该文件时,我得到以下异常。
java.io.FileNotFoundException: .\testFiles\output.txt (No such file or directory)
我尝试过不同的文件路径格式但没有一种工作。我认为问题在于文件路径格式。
提前致谢。
答案 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");