我编写了这个简单的程序来尝试从我电脑 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
,我的猜测是文件或文件名存在其他问题。

慕侠2389804
TA贡献1719条经验 获得超6个赞
该Path.of()
方法在 JDK 11 中添加,需要一个URI
as 参数,而不是一个String
. 例如,
Scanner input = new Scanner(Path.of(new URI("file:///D:/test.txt")), StandardCharsets.UTF_8);
或者你可以简单地使用new Scanner(File)
,正如其他答案所说。

幕布斯7119047
TA贡献1794条经验 获得超8个赞
尝试如下初始化您的扫描仪,您不需要路径:
Scanner input = new Scanner(new File("D:\\test.txt") , StandardCharsets.UTF_8);
添加回答
举报
0/150
提交
取消