使用 FileReader Class 从位置 Java 读取文件
Use FileReader Class to read file from location Java
我正在使用 FileReader class 尝试访问同一目录中的 .txt 文件。我让它工作的唯一方法是使用从用户开始的目录路径。
值得注意 - 我在 Mac
上使用 intellij 社区版
代码
Scanner inFile = new Scanner(new FileReader("/Users/tuckerbeauchamp/Desktop/Java-Class/Famous Scientist/src/com/names.txt"));
仅使用 "names.txt"
时出现错误
Exception in thread "main" java.io.FileNotFoundException: names.txt (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at com.FamousCS.main(FamousCS.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
如果文本文件与源文件位于同一目录中,则当您 运行 程序时,文本文件将在 class 路径中可用。因此,您可以使用 Class 加载程序访问该文件:
InputStream stream = FamousCS.class.getClassLoader().getResourceAsStream("/com/names.txt");
Scanner scanner = new Scanner(stream);
如果文件与class在同一目录下,只需将
Scanner inFile = new Scanner(new FileReader("names.txt"));
也可以。无需通过 class 加载程序和所有加载文件。
同样在类似的情况下,也可以使用 File.getAbsolutePath() 来检查正在查看文件的确切位置。 .
我正在使用 FileReader class 尝试访问同一目录中的 .txt 文件。我让它工作的唯一方法是使用从用户开始的目录路径。
值得注意 - 我在 Mac
上使用 intellij 社区版代码
Scanner inFile = new Scanner(new FileReader("/Users/tuckerbeauchamp/Desktop/Java-Class/Famous Scientist/src/com/names.txt"));
仅使用 "names.txt"
时出现错误Exception in thread "main" java.io.FileNotFoundException: names.txt (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at com.FamousCS.main(FamousCS.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
如果文本文件与源文件位于同一目录中,则当您 运行 程序时,文本文件将在 class 路径中可用。因此,您可以使用 Class 加载程序访问该文件:
InputStream stream = FamousCS.class.getClassLoader().getResourceAsStream("/com/names.txt");
Scanner scanner = new Scanner(stream);
如果文件与class在同一目录下,只需将
Scanner inFile = new Scanner(new FileReader("names.txt"));
也可以。无需通过 class 加载程序和所有加载文件。
同样在类似的情况下,也可以使用 File.getAbsolutePath() 来检查正在查看文件的确切位置。 .