java 系统找不到指定文件夹_FileNotFoundException:系统找不到指定的文件

196b545e16c1720f677c769e434206fb.png

侃侃尔雅

将Wordd.txt直接放置为项目根文件夹的子文件夹和src的对等方Project_Root

    src

    word.txt免责声明:我想解释一下为什么这在这个特殊的情况下有效,为什么它可能不适用于其他人。其工作原理:当你使用File或者其他任何一个FileXxx变量,您正在寻找文件系统上相对于“工作目录”..工作目录,可以描述为:当您从命令行运行时C:\EclipseWorkspace\ProjectRoot\bin > java com.mypackage.Hangman1工作目录是C:\EclipseWorkspace\ProjectRoot\bin..对于IDE(至少所有我曾经使用过的IDE),工作目录是ProjectRoot..因此,当文件位于ProjectRoot,然后只使用文件名作为相对路径是有效的,因为它位于工作目录的根目录。同样,如果这是您的项目结构ProjectRoot\src\word.txt,然后是那条路"src/word.txt"都是有效的。为什么它不起作用例如,工作目录总是可以更改的。例如,在上面的示例中从命令行运行代码时,工作目录是bin..因此,在这种情况下,它将失败,因为没有bin\word.txt其次,如果要将该项目导出到JAR中,并且将该文件配置为包含在JAR中,它也将失败,因为路径也将不再有效。尽管如此,您需要确定该文件是否为嵌入式资源(或者仅仅是“资源”-有时我会交替使用的术语)。如果是这样,那么您将希望将文件构建到类路径中,并通过URL访问它。第一件您需要做的事情(在这种特殊情况下)是确保文件建好进入类路径。使用项目根目录中的文件,必须将生成配置为包含该文件。但如果您将文件放入src或者在下面的某个目录中,默认构建应该将其放到类路径中。您可以通过多种方式访问类路径资源。您可以使用Class类的getResourceXxx方法,用于获取类路径资源。例如,如果将项目结构更改为ProjectRoot\src\resources\word.txt,你可以用这个:InputStream is = Hangman1.class.getResourceAsStream("/resources/word.txt");

BufferedReader reader = new BufferedReader(new InputStreamReader(is));getResourceAsStream返回InputStream,但是在引擎盖下获得一个URL。或者,你可以得到一个URL如果你需要的话。getResource()将返回一个URL对于Maven用户,目录结构如下src/main/resources的内容resources文件夹放在类路径的根目录下。因此,如果其中有一个文件,那么您将只使用getResourceAsStream("/thefile.txt")

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

范奕信

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值