繁体   English   中英

Java Scanner 无法仅读取文件名

[英]Java Scanner can't read from only File Name

我正在制作一个 Java 程序来从 .csv 文件中读取一些分数并计算这些分数的平均值。 为了从文件中读取,我使用了 Scanner 类。

首先,我创建了一个扫描仪来读取我的文件:

Scanner scanner = new Scanner(new File("TempFile.csv"));

我预计这会起作用,但它返回 FileNotFoundException。 所以,我用文件的绝对文件名替换了 TempFile.csv。

Scanner scanner = new Scanner(new File(C:\\Users\....));

这给了我想要的结果,并且我能够解析文件。 我是 Java 新手,但我知道使用绝对文件名是不好的做法。

如何仅使用短文件名?

Scanner scanner = new Scanner(new File (new File("TempFile.csv").getAbsolutePath()));

使用上面。

“TempFile.csv”是一个相对路径。 它相对于您的 java 程序的工作目录。 该目录是System属性“user.dir”的值。 以下代码行为您提供了该值...

String workingDirectory = System.getProperty("user.dir");

因此,如果您收到FileNotFoundException ,则可能意味着文件“TempFile.csv”不在您的 Java 程序的工作目录中。

顺便说一下,从 java 8 开始,类java.nio.file.Files包含方法readAllLines 因此,如果文件“TempFile.csv”不是太大, readAllLines可能是类Scanner的更简单替代方案。 请注意,在调用该方法时,您仍然需要提供正确的文件路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM