如何从类路径加载/引用文件作为 File 实例
我的类路径中有一个文件,例如 com/path/to/file.txt。我需要将此文件作为 java.io.File 对象加载或引用。这是因为我需要使用 java.io.RandomAccessFile 访问文件(文件很大,我需要寻找某个字节偏移量)。这可能吗? RandomAccessFile
的构造函数需要一个 File
实例或字符串(路径)。
如果有另一种解决方案来寻求某个字节偏移量并读取该行,我也对此持开放态度。
I have a file that is in my classpath, e.g. com/path/to/file.txt
. I need to load or reference this file as a java.io.File
object. The is because I need to access the file using java.io.RandomAccessFile
(the file is large, and I need to seek to a certain byte offset). Is this possible? The constructors for RandomAccessFile
require a File
instance or String (path).
If there's another solution to seek to a certain byte offset and read the line, I'm open to that as well.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试获取类路径资源的 URL:
然后使用接受 URI 的构造函数创建一个文件:
Try getting hold of a URL for your classpath resource:
Then create a file using the constructor that accepts a URI:
这也有效,并且不需要 /path/to/file URI 转换。如果该文件位于类路径上,它将找到它。
This also works, and doesn't require a /path/to/file URI conversion. If the file is on the classpath, this will find it.
我发现这一行代码最有效、最有用:
工作起来就像一个魅力。
I find this one-line code as most efficient and useful:
Works like a charm.
或者直接使用资源的
InputStream
,使用绝对CLASSPATH路径(以/
斜线字符开头):或者相对CLASSPATH路径(当你正在编写的类位于与资源文件本身相同的 Java 包,即
com.path.to
):Or use directly the
InputStream
of the resource using the absolute CLASSPATH path (starting with the/
slash character):Or relative CLASSPATH path (when the class you are writing is in the same Java package as the resource file itself, i.e.
com.path.to
):