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

本文详细解析了在Java项目中遇到'系统找不到指定文件'的问题,包括问题出现的原因、工作目录的概念,以及如何正确引用项目中的文件。讨论了在不同环境下(如命令行、IDE)工作目录的不同,以及将文件打包到JAR时的注意事项。最后提供了通过Class类的getResourceXxx方法访问类路径资源的解决方案。
摘要由CSDN通过智能技术生成

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")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值