我正在使用 libgdx 函数 Gdx.files.internal 读取文件。该文件放在 Android 的文件夹 assets 中。一旦应用程序在桌面上启动,我就会更改文件并重新读取它。但它不起作用。我的意思是,应用程序读取旧文件,尽管我刚刚更改了它。这是代码块
public Scenario getScenario(String scenarioName)
{
FileHandle f = Gdx.files.internal(scenarioName);
return new Scenario(new BufferedReader(new InputStreamReader(f.read())));
}
有人知道为什么 Gdx.files.internal 仍在读取旧文件吗?当然,一旦我停止应用程序并重新启动它,就会读取新文件。这里有什么问题吗?
任何提示将不胜感激。
最佳答案
Gdx 内部文件是只读的。这就是为什么当你再次阅读它时,你会再次获得相同的数据。
如果您想要一个可以读取和写入的文件,则需要使用本地或外部。
更详细地解释了文件类型 here .
如果您想在 Android Assets 文件夹中提供初始版本,您可以在应用启动时将其复制到本地,然后从那时起使用本地文件。换句话说:
public void create() {
...
FileHandle internalFile = Gdx.files.internal(scenarioName);
internalFile.copyTo(Gdx.files.local(scenarioName);
}
关于android - 重新读取 libgdx 中的内部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219865/