java如何在libgdx中打开随机访问文件
我需要在libgdx中打开一个文件进行随机访问,也就是说,我需要能够seek()
访问文件的不同部分(不按顺序读取)
使用libgdx,我可以通过Gdx.files.internal()
访问文件,但是libgdx的文件处理程序不支持像seek()
这样的随机访问方法。我尝试使用java.io.RandomAccessFile
,但它会生成异常No such file or directory
,可能是因为该文件存储在jar文件的内部
如何使用java访问该文件。木卫一。RandomAccessFile`或者,我如何在libgdx中打开文件进行随机访问
这需要在Android和桌面平台上都能工作
# 1 楼答案
这不是Libgdx的限制。不能对存储在JAR文件中的文件进行随机访问(因为它们是压缩的,所以需要流式传输内容)。(我找不到这方面的简明参考,但看看
JarFile
和ZipFile
的定义:它们只允许创建流文件句柄)Libgdx本身就遇到了这个问题。它将本地库存储在数据库中。jar文件(即
libgdx-natives.jar
)。为了使用这些文件,它将它们提取到本地文件系统,并从那里使用它们。见SharedLibraryLoader.java据我所知,有三种变通方法可供选择:
local
(私有)存储或临时存储中(希望这可以只执行一次,而不是每次运行应用时都重新执行)李>