如果java中的文本文件未保存在同一位置,如何从中读取

如果java中的文本文件未保存在同一位置,如何从中读取,java,io,filesystems,Java,Io,Filesystems,我正在尝试编写一个函数,该函数将接受一个字符串,然后打开一个具有该字符串名称的文件并读取文本。我知道如何做到这一点,但我有一个问题,我的文本文件没有保存在我的java文件的同一个地方 看起来像这样 Project name/src/program.java Project name/resources/text.txt 我正在使用File类,但不知道在文件构造函数中放入什么来打开到正确的位置。 例如,文件存储=新文件(xxxxxxxx text.txt) 请帮我解决文件名前面的问题。另外,这是

我正在尝试编写一个函数,该函数将接受一个字符串,然后打开一个具有该字符串名称的文件并读取文本。我知道如何做到这一点,但我有一个问题,我的文本文件没有保存在我的java文件的同一个地方

看起来像这样

Project name/src/program.java
Project name/resources/text.txt
我正在使用File类,但不知道在文件构造函数中放入什么来打开到正确的位置。 例如,
文件存储=新文件(xxxxxxxx text.txt)
请帮我解决文件名前面的问题。另外,这是Windows8上的Java6和im

这是我的代码:

public static void areaSearch(String a) {
Scanner reader = null;
try {
reader = new Scanner(new File("../resources/" + a+ ".txt"));
}
catch (Exception e) {
System.out.println("File: " + a +" not opended...");
}

如果位于项目文件夹的简单相对路径上,请使用相对路径:

File file = File("../resources/text.txt");
或使用绝对路径:

File file = File("C:\\abcfolder\\text.txt");
阅读。文件类的构造函数不止一个。使用:

public File(File parent, String child)

我在网上看到过,也尝试过,但不确定我会怎么做。子文件是文件的名称,但是父文件的构造函数中包含什么呢?这取决于程序运行的位置。它不应该从您有源代码的文件夹运行,而应该从项目的根目录或其他地方运行。检查这一点的方法之一是(这不是最好的方法):File File=newfile(“something.txt”);System.out.println(file.getAbsolutePath());然后你就会知道你是谁了。若它是项目的根目录,那个么父目录应该是:File parent=新文件(“资源”);谢谢,但就像上面我试过的那样,它给了我一个异常。你的java在一个包中吗?是的,默认的包。所有这些看起来都应该可以工作,但出于某种原因,我仍然得到一个异常。我仍然不确定为什么相对路径不工作,但我用绝对路径让它工作。谢谢你的帮助和重新格式化。