我正在制作一个Java程序,以从.csv文件中读取一些分数并计算这些分数的平均值。要读取文件,我正在使用扫描仪类。
首先,我创建一个扫描仪以读取我的文件:
Scanner scanner = new Scanner(new File("TempFile.csv"));
我希望它能正常工作,但是它返回FileNotFoundException。因此,我用文件的绝对文件名替换了TempFile.csv。
Scanner scanner = new Scanner(new File(C:\\Users\....));
这给了我想要的结果,并且我能够解析该文件。我是Java的新手,但我知道使用绝对文件名是一种不好的做法。
如何仅使用短文件名?
答案 0 :(得分:0)
Scanner scanner = new Scanner(new File (new File("TempFile.csv").getAbsolutePath()));
在上方使用。
答案 1 :(得分:0)
“ 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
的更简单替代。请注意,尽管在调用该方法时仍需要提供文件的正确路径。