我正在制作一个 Java 程序来从 .csv 文件中读取一些分数并计算这些分数的平均值。要从文件中读取,我使用的是 Scanner 类。首先,我创建了一个扫描仪来读取我的文件:Scanner scanner = new Scanner(new File("TempFile.csv"));我希望它能工作,但它返回一个 FileNotFoundException。因此,我用文件的绝对文件名替换了 TempFile.csv。Scanner scanner = new Scanner(new File(C:\\Users\....));这给了我想要的结果,并且我能够解析文件。我是 Java 的新手,但我知道使用绝对文件名是不好的做法。我怎样才能只使用短文件名?
2 回答
达令说
TA贡献1821条经验 获得超6个赞
Scanner scanner = new Scanner(new File (new File("TempFile.csv").getAbsolutePath()));
使用上面。
POPMUISE
TA贡献1765条经验 获得超5个赞
“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
。请注意,在调用该方法时,您仍然需要提供文件的正确路径。
添加回答
举报
0/150
提交
取消