我有一个在我的类路径中的文件,例如com/path/to/file.txt.我需要加载或引用此文件作为java.io.File对象.这是因为我需要使用java.io.RandomAccessFile(文件很大,我需要寻找某个字节偏移量)来访问该文件.这可能吗?构造函数RandomAccessFile需要File实例或String(路径).
如果有另一个解决方案寻求某个字节偏移并读取该行,我也对此持开放态度.
joe*_*ohn 227
尝试获取类路径资源的URL:
URL url = this.getClass().getResource("/com/path/to/file.txt")
Run Code Online (Sandbox Code Playgroud)
然后使用接受URI的构造函数创建一个文件:
File file = new File(url.toURI());
Run Code Online (Sandbox Code Playgroud)
Hot*_*tel 46
这也有效,并且不需要/ path/to/file URI转换.如果文件在类路径上,则会找到它.
File currFile = new File(getClass().getClassLoader().getResource("the_file.txt").getFile());
Run Code Online (Sandbox Code Playgroud)
Gon*_*ndy 18
我发现这个单行代码最有效和最有用:
File file = new File(ClassLoader.getSystemResource("com/path/to/file.txt").getFile());
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.
或使用InputStream绝对CLASSPATH路径(以/斜杠字符开头)直接使用资源的:
getClass().getResourceAsStream("/com/path/to/file.txt");
或相对的CLASSPATH路径(当您编写的类与资源文件本身位于同一Java包中时,即com.path.to):
getClass().getResourceAsStream("file.txt");
| 归档时间: |
|
| 查看次数: |
107086 次 |
| 最近记录: |