为什么Java找不到与类保存在同一文件夹中的CSV文件?使用 duke.edu 文件资源

问题描述 投票:0回答:2

我试图让 Java 打开一个 CSV 文件(该文件保存在与 Java 项目相同的文件夹中)并解析其内容。我已在代码中包含文件路径,但当我运行该程序时,它表示无法访问该文件。 FileResource 对象来自 dukelearntoprogram.com

我尝试了不同版本的文件路径,其中包括路径中的更多步骤。我尝试将此参数留空来运行程序,在这种情况下,FileResource 将打开一个文件导航窗口。当在此窗口中手动选择指定的文件时,一切都会按预期进行,但我无法让它从文件路径的字符串自动打开。

public void testHottestInDay () {
        FileResource fr = new FileResource("ParsingCSVdata/weather_data/2015/weather-2015-01-01.csv");  
        CSVRecord largest = hottestHourInFile(fr.getCSVParser());
        System.out.println("Hottest temperature was " + largest.get("TemperatureF") + " at " + largest.get("TimeEST"));

当我尝试使用上面指定的文件路径运行程序时,我收到以下错误消息: edu.duke.ResourceException:FileResource:无法访问 解析CSVdata/weather_data/2015/weather-2015-01-01 在 edu.duke.FileResource.initRead(FileResource.java:370) 在 edu.duke.FileResource。(FileResource.java:95) 在 CSVMax.testHottestInDay(CSVMax.java:31)。

java io
2个回答
0
投票

我最终通过反复试验发现解决方案是指定 LESS 的文件路径。因为java项目与数据位于同一个文件中,即“ParsingCSVdata”,所以这一步需要从文件路径中省略。 当我运行程序时,上面的第二行替换为: FileResource fr = new FileResource("weather_data/2015/weather-2015-01-01.csv"); 我得到了预期的结果。 我仍然对我所学到的感到惊讶,为什么提供太多有关文件所在位置的背景信息会成为一个问题?


0
投票

您确定您的预期路径包含正确的目录名和文件名吗?

© www.soinside.com 2019 - 2024. All rights reserved.