Java中的FileReader找不到该文件

Java中的FileReader找不到该文件,java,filereader,Java,Filereader,我试图读取纯文本文件,但不知何故,FileReader找不到我的文本文件。我使用getAbsolutefile()检查了目录,/Users/djhanz/IdeaProjects/datalab2/pg174.txt是文件的确切位置。我尝试了datlab 2/pg174.txt以及我所能做的一切。 这是我的密码 public class Program1 { public static void main(String[] args) { System.out.prin

我试图读取纯文本文件,但不知何故,
FileReader
找不到我的文本文件。我使用
getAbsolutefile()
检查了目录,
/Users/djhanz/IdeaProjects/datalab2/pg174.txt
是文件的确切位置。我尝试了
datlab 2/pg174.txt
以及我所能做的一切。 这是我的密码

public class Program1 {

    public static void main(String[] args) {
        System.out.println(new File("pg174.txt").getAbsoluteFile());
        Scanner testScanner = new Scanner(new BufferedReader(new FileReader("/Users/djhanz/IdeaProjects/datalab2/pg174.txt")));
        while (testScanner.hasNextLine())
        {
            System.out.println(testScanner.nextLine());
        }

    }


}
文本文件位于名为
datalab
的同一项目目录下。
有人能告诉我吗?

使用
Scanner testScanner=new Scanner(new BufferedReader(new FileReader(“/pg174.txt”))

FileReader(“/pg174.txt”)
而不是
FileReader(“pg174.txt”)

package com.example.demo;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.util.Scanner;
公共课程1{
公共静态void main(字符串[]args)引发FileNotFoundException{
System.out.println(新文件(“pg174.txt”).getPath();
System.out.println(新文件(“pg174.txt”).getAbsoluteFile();
System.out.println(新文件(“pg174.txt”).getAbsolutePath();
Scanner testScanner=newscanner(newbufferedreader(newfilereader(“/pg174.txt”));
while(testScanner.hasNextLine()){
System.out.println(testScanner.nextLine());
}
}
}
输出:


那么编译/运行此程序时会发生什么?我怀疑它甚至没有编译,这与文件名无关。与其只打印
文件
对象,不如将其保存到变量中,并在
文件读取器
构造函数中使用它。这样可以确保使用的文件正确。另外,如果指定的文件确实存在,请检查文件系统。使用
Scanner testScanner=new Scanner(new BufferedReader(new FileReader(“/pg174.txt”))“名为datalab的同一项目目录”--
datalab
!=
datalab2
FYI:仅仅因为
println(新文件(“pg174.txt”).getAbsoluteFile())
prints
/Users/djanz/IdeaProjects/datalab2/pg174.txt
并不意味着那里有一个文件。这仅仅意味着当前的工作目录是
/Users/djanz/IdeaProjects/datalab2
。为什么您认为文件
pg174.txt
存在于文件系统的根目录中?问题是“文本文件位于名为datalab的同一项目目录下”,这意味着它不在根文件夹中。提问者写道
文本文件位于名为datalab的同一项目目录下
。是,而“under”意味着“not root”,因此指定根目录中文件的绝对路径(例如
“/pg174.txt”
)当然不是。是的。然后
Scanner testScanner=new Scanner(new BufferedReader(new FileReader)(new File(“/pg174.txt”).getAbsoluteFile())
应该按照我的答案工作。我刚刚告诉他使用
/