系统找不到路径



尝试通过执行读取输入等基本功能来练习Java。

我正在尝试解析在以下位置找到movies-sample.txt

C:UniversityBigDataManagementData-Mininghw1srcmainresourcesmovies-sample.txt

尝试movies-sample.txt

C:UniversityBigDataManagementData-Mininghw1srcmainjava
   univbigdatacourseMoviesReviewsQueryRunner.java

使用此处找到的有关如何逐行解析大文件的答案。

File file = new File("../../../../../resources/movies-sample.txt");

我收到以下错误:

系统找不到指定的路径

鉴于上述两条路径,我做错了什么?

如果它是一个 Web 应用程序,那么 resources 文件夹是您的根元素,否则它将是注释中提到的src文件夹。

在您的情况下,当您编写独立的 Java 程序并且您的文件位于 resources 文件夹中时,您可以使用 CLassLoader 将文件作为流读取。

这是你的代码应该如何:

ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("movies-sample.txt");

然后,您将能够逐行读取is流。

如果直接从命令行运行程序,则路径必须与当前目录相关。

如果从 IDE 运行程序,则 runnin 程序的当前目录取决于 IDE 及其配置方式。

您可以使用System.getProperty("user.dir")确定当前目录是什么

无论如何,在应用程序中对路径进行硬编码始终是一件坏事,因为您无法确保从何处启动运行。也:

  • 它是一个用户资源,那么它的路径必须以某种方式输入(在GUI应用程序中打开(
  • 它是应用程序正常运行所需的资源,它应该以某种方式嵌入到应用程序本身中(查找资源包(
  • 它是一种可选的外部资源(例如配置文件,或在配置文件中指定的路径(,其位置应以某种方式计算。

相关内容

  • 没有找到相关文章

最新更新