Java Scanner 无法仅读取文件名

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

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

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

我希望它能工作,但它返回一个 FileNotFoundException。因此,我用文件的绝对文件名替换了 TempFile.csv。

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

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

我怎样才能只使用短文件名?


智慧大石
浏览 153回答 2
2回答

达令说

Scanner scanner = new Scanner(new File (new File("TempFile.csv").getAbsolutePath()));使用上面。

POPMUISE

“TempFile.csv”是一个相对路径。它是相对于你的 java 程序的工作目录的。该目录是属性“user.dir”的值System。以下代码行为您提供了该值...String workingDirectory = System.getProperty("user.dir");因此,如果您得到FileNotFoundException,则可能意味着文件“TempFile.csv”不在您的 Java 程序的工作目录中。顺便说一下,自 java 8 以来,类java.nio.file.Files包含方法readAllLines。因此,如果文件“TempFile.csv”不是太大,readAllLines则可能是 class 的更简单替代方案Scanner。请注意,在调用该方法时,您仍然需要提供文件的正确路径。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java