我正在制作一個(gè) Java 程序來從 .csv 文件中讀取一些分?jǐn)?shù)并計(jì)算這些分?jǐn)?shù)的平均值。要從文件中讀取,我使用的是 Scanner 類。首先,我創(chuàng)建了一個(gè)掃描儀來讀取我的文件:Scanner scanner = new Scanner(new File("TempFile.csv"));我希望它能工作,但它返回一個(gè) FileNotFoundException。因此,我用文件的絕對(duì)文件名替換了 TempFile.csv。Scanner scanner = new Scanner(new File(C:\\Users\....));這給了我想要的結(jié)果,并且我能夠解析文件。我是 Java 的新手,但我知道使用絕對(duì)文件名是不好的做法。我怎樣才能只使用短文件名?
2 回答

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
Scanner scanner = new Scanner(new File (new File("TempFile.csv").getAbsolutePath()));
使用上面。

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
“TempFile.csv”是一個(gè)相對(duì)路徑。它是相對(duì)于你的 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 的更簡(jiǎn)單替代方案Scanner
。請(qǐng)注意,在調(diào)用該方法時(shí),您仍然需要提供文件的正確路徑。
添加回答
舉報(bào)
0/150
提交
取消