首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统找不到路径

系统找不到路径
EN

Stack Overflow用户
提问于 2018-03-16 08:07:38
回答 2查看 183关注 0票数 2

尝试通过执行诸如读取输入之类的基本功能来练习Java。

我正试图解析在以下内容中找到的movies-sample.txt

代码语言:javascript
复制
C:\University\BigDataManagement\Data-Mining\hw1\src\main\resources\movies-sample.txt

试图从以下位置到达movies-sample.txt

代码语言:javascript
复制
C:\University\BigDataManagement\Data-Mining\hw1\src\main\java
   \univ\bigdata\course\MoviesReviewsQueryRunner.java

使用这个答案找到了here如何逐行解析一个大文件。

代码语言:javascript
复制
File file = new File("../../../../../resources/movies-sample.txt");

我得到了以下错误:

系统找不到指定的路径。

考虑到以上两条路,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-16 08:23:37

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

在这里,当您正在编写独立的Java程序时,当您的文件被保存在resources文件夹中时,您可以使用CLassLoader将文件作为流读取。

这应该是您的代码:

代码语言:javascript
复制
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("movies-sample.txt");

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

票数 2
EN

Stack Overflow用户

发布于 2018-03-16 08:34:28

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

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

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

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

  • 它是一个用户资源,那么它的路径必须以某种方式输入(打开.(在GUI应用程序中)
  • 它是应用程序正确运行所需的资源,应该以某种方式嵌入应用程序本身(查找资源束)
  • 它是一种可选的外部资源(例如配置文件或配置文件中指定的路径),它的位置应该以某种方式计算。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49315804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档