Java 如何读取资源文件夹中的文件
Java和IntelliJ新手在这里。如果已经回答了,我很抱歉,但我似乎找不到答案 我的项目结构如下所示:Java 如何读取资源文件夹中的文件,java,embedded-resource,Java,Embedded Resource,Java和IntelliJ新手在这里。如果已经回答了,我很抱歉,但我似乎找不到答案 我的项目结构如下所示: 我正在尝试解决如何将Highlllighted storedQueries.txt文件的内容作为单个字符串读取。这一定很简单,我已经尝试了许多涉及getClass等的方法,但到目前为止没有任何效果。感谢您的指导。您可以使用当前的类加载器阅读该文件,但在此之前,您需要稍微理顺一下结构。当您使用ClassLoader读取文件时,默认情况下,它会查看它所属的同一个包 步骤1:创建新包com.p
我正在尝试解决如何将Highlllighted storedQueries.txt文件的内容作为单个字符串读取。这一定很简单,我已经尝试了许多涉及getClass等的方法,但到目前为止没有任何效果。感谢您的指导。您可以使用当前的类加载器阅读该文件,但在此之前,您需要稍微理顺一下结构。当您使用ClassLoader读取文件时,默认情况下,它会查看它所属的同一个包 步骤1:创建新包
com.pe.querys
步骤2:在上面的包中创建类
Package Info.java
步骤3:在resources
下创建新的嵌套目录,作为resources/com/pe/querys
并将文件移动到此目录第4步:最后,您应该能够将文件读取为
Package Info.class.getResource(“storedQueries.txt”)代码>
将资源文件夹放在目标中有两种获取资源的方法:
通过绝对路径,但这不是一个好方法,因为绝对路径是不可靠的,但它有利于“冒烟”测试
通过相对路径,又有两种方法
这两种方法都可以使用getClass().getResource(path)
construction
相对路径:
如果资源位于资源目录的“根目录”中,则路径应以/
开头:
“/etc.txt”
其中文件etc.txt存储在资源目录中
对于图片中的示例,您的路径是:/querys/storedquerys.txt
如果您的资源位于资源目录中,但位于扁平目录中,则与您调用的类的包相同.getResource(path)
,如:
resources/com/pe/querys/etc.txt
您的路径不应包括已启动的“/”:
getClass().getResource(“com/pe/querys/etc.txt”)
这是因为当您的构建系统(您的maven)构建项目时,如果您将资源存储在resources目录的root
,它会将资源放在jar的“root”中,或者,如果您像resources/com/pe/querys/etc.txt这样存储,则会在jarcom/pe/querys/
中创建内部jarcom/pe/querys/
,并将其放在jar中
对不起我的英语,希望我能帮助你理解它是如何工作的
另外,我写了这篇文章,是关于俄语的,但是你可以通过谷歌翻译(我试过了,可以理解),里面有更多的例子和解释
祝你好运
getClass().getResource("/resources/etc.txt")