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())
应该按照我的答案工作。我刚刚告诉他使用/
。