为了账号安全,请及时绑定邮箱和手机立即绑定

即使它在我的工作目录中,java 也无法从文本文件中进行扫描

即使它在我的工作目录中,java 也无法从文本文件中进行扫描

开心每一天1111 2021-10-13 15:48:30
import java.util.Scanner;import java.io.*;public class scanners {    public static void main(String[] args) {        File testFile = new File("names.txt");        // Scanner sc = new Scanner(testFile);        System.out.println(System.getProperty("user.dir"));    }}这段代码的输出是C:\Users\steve\eclipse-workspace\a3,我把我的names.txt放在这个文件夹中。但是,当我取消注释创建扫描仪对象的代码时,我得到一个FileNotFoundException. 我究竟做错了什么?编辑import java.util.Scanner;import java.io.*; public class scanners {public static void main(String[] args) {    Scanner sc = null;    try {        sc = new Scanner(new File("names.txt"));    }    catch(FileNotFoundException e) {        System.out.println("Problem reading the data file. Returning null for Scanner"                        + "object. Problems likely to occur." + e);    }    System.out.println(sc.nextLine());}}出于某种原因,这种格式可以正常工作,但我之前发布的格式却没有。我真的不知道为什么。
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

我认为很可能代码实际上并未在您认为的目录中运行。如果替换File testFile = new File("names.txt");File testFile = new File("C:\Users\steve\eclipse-workspace\a3\names.txt");,它会起作用吗?如果是这样,请在 eclipse 中检查您的运行配置以确保您实际上在该文件夹中运行


查看完整回答
反对 回复 2021-10-13
?
不负相思意

TA贡献1777条经验 获得超10个赞

尝试在eclipse中直接添加文本文件,在包资源管理器中右键单击您的项目并添加->未命名的文本文件,将其保存为names.txt。

您可能还使用隐藏文件类型将其命名为 names.txt,因此现在称为 names.txt.txt,有时我会遇到这种情况:D


查看完整回答
反对 回复 2021-10-13
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

systemproperty 'user.dir' 指的是用户的主目录。这与“当前工作目录”不同,后者是解析相对路径的目录。

在您的情况下,这两个显然不相等。

你可以选择这个:

new File(getSystemProperty("user.dir"), "names.txt");

或者你可以指定一个绝对路径并记住在java中反斜杠是字符串转义符,所以,看起来像:

new File("C:/Users/steve/eclipse-workspace/a3/names.txt");

或者:

new File("C:\\Users\\steve\\eclipse-workspace\\a3\\names.txt");

或者如果这个 names.txt 东西与你的类文件在同一个地方:

new Scanner(ClassYouAreIn.class.getResourceAsStream("names.txt"), StandardCharsets.UTF_8);



查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信