Java:无法对打开了用户映射部分的文件执行操作

时间:2014-06-19 05:30:16

标签: java libgdx

我正在使用LibGDX开发游戏,并且我已经在少数计算机和各种操作系统上成功测试了它。我把它发送给我的朋友进行测试,当游戏试图保存时,他得到了这个神秘的错误。

一系列事件如下:

- 游戏使用Gdx.files.local(路径)打开现有的保存文件.readString()

-LibGDX的readString在文件完成后关闭文件。我通过检查来源验证了。该文件永远不会再打开。

- 稍后,游戏会尝试覆盖该文件,并收到以下错误。

java.io.FileNotFoundException: save.dat (The requested operation cannot be performed on a file with a user-mapped section open)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at engine.Data.writeFile(Data.java:60)

writeFile定义如下。第60行是“新的FileWriter”行。 (为清楚起见省略了记录)

public static boolean writeFile(String filename, String data) {
    boolean success = false;

    try {
        FileWriter fw = new FileWriter(filename);
        try {
            fw.write(data);
            success = true;
        } catch(Exception e) {
            success = false;
        } finally {
            fw.close();
        }
    } catch(Exception e) {
        success = false;
    }

    return success;
}

我不确定为什么它只发生在这台特定的计算机上 - 我在其他Windows 7计算机上测试过它们并没有出现同样的问题。我的朋友也在他的其他Windows 7计算机上测试过没有问题。

这是我应该担心的事情,还是我应该把它粉到一台片状计算机上? 或者我公然做错了什么?

0 个答案:

没有答案