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

使用 Scanner 类从文件中读取信息时遇到问题

使用 Scanner 类从文件中读取信息时遇到问题

翻阅古今 2022-07-20 10:46:46
我编写了这个简单的程序来尝试从我电脑 D 盘中的 txt 文件中读取信息`package readDisk;import java.nio.charset.StandardCharsets;import java.nio.file.*;import java.util.*;public class ReadDisk {    public static void main(String[] args) {    Scanner input = new Scanner(Path.of("D:\\test.txt"), StandardCharsets.UTF_8);    String TestText = input.nextLine();    System.out.println(TestText);    }}我在编译时收到一条错误消息Exception in thread "main" java.lang.Error: Unresolved compilation problem:     The method of(String) is undefined for the type Path    at readDisk.ReadDisk.main(ReadDisk.java:9)我正在关注核心 Java 第 1 卷第 11 版中的示例程序,我已经查看了所有内容,试图找出我出错的地方,但无济于事。任何帮助将不胜感激。
查看完整描述

4 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

与某些评论者所说的相反,您尝试使用的方法确实存在。有问题的方法需要一个必需的第一个参数,然后是可变数量的参数,由varargs 构造实现,这意味着零个或多个参数。

但它只能从 Java 11 开始使用。您需要检查您的 Java 版本。

另一种方法是您将扫描仪与另一个参数一起使用:

  • new Scanner(new File(D:/test.txt), StandardCharsets.UTF_8); 或者

  • new Scanner(Paths.get(D:/test.txt), StandardCharsets.UTF_8)

构造函数分别抛出 aFileNotFoundException和 an IOException。确保您处理它或将其传播给调用者。


注意:一个快速的本地测试告诉我这实际上对我有用。因此,如果您的代码仍然抛出 a FileNoteFoundException,我的猜测是文件或文件名存在其他问题。


查看完整回答
反对 回复 2022-07-20
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

Path.of()方法在 JDK 11 中添加,需要一个URIas 参数,而不是一个String. 例如,

Scanner input = new Scanner(Path.of(new URI("file:///D:/test.txt")), StandardCharsets.UTF_8);

或者你可以简单地使用new Scanner(File),正如其他答案所说。


查看完整回答
反对 回复 2022-07-20
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您的代码很好,Path::of方法只能采用一个参数,因为第二个参数是可变参数。只要确保您使用的是 java 11



查看完整回答
反对 回复 2022-07-20
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

尝试如下初始化您的扫描仪,您不需要路径:

Scanner input = new Scanner(new File("D:\\test.txt") , StandardCharsets.UTF_8);


查看完整回答
反对 回复 2022-07-20
  • 4 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号