Java 为bufferedReader选择另一个目录中的文件

Java 为bufferedReader选择另一个目录中的文件,java,directory,bufferedreader,fileinputstream,linux,unix,macos,Java,Directory,Bufferedreader,Fileinputstream,Linux,Unix,Macos,我有一个初始化文件(initialize.java),它使用fileInputStream从fileInput.txt中提取数据,但它们都位于不同的目录中 我在initialize.java中的代码是: FileInputStream fstream = new FileInputStream("/resources/text/fileInput.txt"); 但无法读取该文件。我也试过了 FileInputStream fstream = new FileInputStream("./res

我有一个初始化文件(initialize.java),它使用fileInputStream从fileInput.txt中提取数据,但它们都位于不同的目录中

我在initialize.java中的代码是:

FileInputStream fstream = new FileInputStream("/resources/text/fileInput.txt");
但无法读取该文件。我也试过了

FileInputStream fstream = new FileInputStream("./resources/text/fileInput.txt");
但那也不管用

如何访问txt文件?使用“/resources”和“/resources”有什么区别


谢谢你阅读这篇文章

FileInputStream fstream=newfileinputstream(“resources/text/fileInput.txt”)


尝试过这个吗?

FileInputStream fstream=newfileinputstream(“resources/text/fileInput.txt”)

尝试过这个吗?

“/resources/text/fileInput.txt”或
“resources/text/fileInput.txt”
有效, 但是,
“/resources/text/fileInput.txt”
没有

注意:如果名为“resources”的文件夹位于项目的根目录下,则此选项有效。

“/resources/text/fileInput.txt”
“resources/text/fileInput.txt”
有效, 但是,
“/resources/text/fileInput.txt”
没有


注意:如果名为“resources”的文件夹位于项目的根目录下,则此选项有效。

差异很大。在//上,以/开头的路径从根目录开始。以/开头或不从当前应用程序目录开头的路径。召唤


System.out.println(新文件(“.”.getAbsolutePath())
检查您的位置?

差别很大。在//上,以/开头的路径从根目录开始。以/开头或不从当前应用程序目录开头的路径。召唤


System.out.println(新文件(“.”).getAbsolutePath())
要检查您的位置?

正如其他答案所建议的,传递给FileInputStream的路径取决于操作系统以及路径是相对路径还是绝对路径。另一种读取文件的方法是使用
Class.getResourceAsStream()
。e、 g

输入流是= this.getClass().getResourceAsStream(“/resources/text/fileInput.txt”)


要使上述功能正常工作,您需要在类路径中有父文件夹
/resources
。有关getResourceAsStream如何工作的更多信息,请参见

,其他答案表明,传递给FileInputStream的路径取决于操作系统以及路径是相对路径还是绝对路径。另一种读取文件的方法是使用
Class.getResourceAsStream()
。e、 g

输入流是= this.getClass().getResourceAsStream(“/resources/text/fileInput.txt”)


要使上述功能正常工作,您需要在类路径中有父文件夹
/resources
。有关getResourceAsStream如何工作的更多信息,请参见

Spyly me。。我做了绝对路径的事情,发现它实际上是Project/src/library,我不得不做一个“newfileinputstream”(“src/resources/…”)谢谢!!也许问题是资源是你在资源中的根文件夹。所以试试或
InputStream in=ClassLoader.getresourceastream(“text/fileInput.txt”)
,我从来不知道:)。现在根是你的类路径根。我真傻..我做了绝对路径的事情,发现它实际上是Project/src/library,我不得不做一个“新的FileInputStream”(“src/resources/…”)谢谢!!也许问题在于资源是您在资源中的根文件夹。因此,请尝试或
InputStream in=ClassLoader.getResourceAsStream(“text/fileInput.txt”)
,我从来都不知道:)。现在根是你的类路径根。感谢所有的帮助。我意识到这是我的大错,但至少我学会了“/”目录的东西:)谢谢大家的帮助。我意识到这是我的大错,但至少我学会了“/”目录内容:)
FileInputStream fstream = new FileInputStream("./resources/text/fileInput.txt");