android - 重新读取 libgdx 中的内部文件

标签 android libgdx directory

我正在使用 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/

相关文章:

java - 如何将 Intent 字符串传递给新 Activity 中的 XML 小部件?

java - 架构 arm64 的 undefined symbol : Failed to build RoboVM/LibGDX project

python - 使用 setuptools 更改默认 dist 文件夹

ios默认下载的pdf文件路径和位置

返回 Activity 后android恢复edittext的状态

android - android activity生命周期详解(onAttachedToWindow())

java - LibGDX 拖拽最新的 Android 版本

android - LibGDX - ShapeRenderer 在 Android 上太慢/低 FPS

networking - 检查文件夹是.NET中的本地资源还是网络资源

android - 原生崩溃? Android 6.0 崩溃毫无意义