我在桌面上测试我的应用程序(使用Android,核心和桌面模块),一切正常。
现在我尝试在Android上运行,它给了我FileNotFound。我在桌面上运行之前将android资产链接到desktopLauncher,但是我是不是想为android做类似的事情?
File file = Gdx.files.internal("liver_initial_joints.json").file();
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
str = new String(data, "UTF-8");
我的文件位于... / android / assets / liver_initial_joints.json
答案 0 :(得分:1)
Android不提供对内部app目录的直接java.io.File访问。如果您查看libgdx的FileHandle.file()
的javadoc,您会发现它说除了绝对和外部类型的文件之外它不可用。
如果您只需要读取字符串或字节数组,则可以使用fileHandle.readString()
或fileHandle.readBytes()
。如果您需要输入流,请使用fileHandle.read();
。
例如:
byte[] data = Gdx.files.internal("liver_initial_joints.json").read();
str = new String(data, "UTF-8");
答案 1 :(得分:1)
我发现一个非常简单的方法是:
InputStream is = context.getAssets().open("liver_initial_joints.json");