Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法写入和读取保存的游戏文件_Java_Buffer - Fatal编程技术网

Java 无法写入和读取保存的游戏文件

Java 无法写入和读取保存的游戏文件,java,buffer,Java,Buffer,我在将游戏中的数据写入文件并加载时遇到问题,因此我无法从保存数据时的状态恢复游戏。到目前为止,我已经做到了,但它始终抛出空指针异常。当我点击saveGame时,我使用一个缓冲写入器来写入所有数据的字符串值。然后,我通过读取文件来加载文件,我不确定如何实际显示读取的数据,但在我尝试这么做之前,我需要修复发生的空指针异常抛出。 我已经尝试写入文件,我对路径正确性很有信心,所以我不确定它为什么这样做 代码 我不认为您正在创建LoadSave实例 尝试添加以下内容: public LifeApplica

我在将游戏中的数据写入文件并加载时遇到问题,因此我无法从保存数据时的状态恢复游戏。到目前为止,我已经做到了,但它始终抛出空指针异常。当我点击saveGame时,我使用一个缓冲写入器来写入所有数据的字符串值。然后,我通过读取文件来加载文件,我不确定如何实际显示读取的数据,但在我尝试这么做之前,我需要修复发生的空指针异常抛出。 我已经尝试写入文件,我对路径正确性很有信心,所以我不确定它为什么这样做

代码


我不认为您正在创建
LoadSave
实例

尝试添加以下内容:

public LifeApplication()
{
    ...

    loadSave = new LoadSave();
    loadSave.lifeAaplication = this;

    ....
}

你能提供你得到的异常的堆栈跟踪吗?你到底从哪里得到NullPointerException?不确定它是否与你遇到的问题有关,但你正在对你的LifeApplication对象调用
String.valueOf
。但是由于LifeApplication类没有重写它的
toString()
方法,因此您将获得的字符串很可能不包含您希望它包含的数据。

import java.io.*;

public class LoadSave {
    LifeApplication lifeApplication;

    public void saveGame() {

        String filename = "C:\\Users\\brads\\Desktop\\GameOfLife.txt";
        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter(filename));

            writer.write(String.valueOf(lifeApplication));
            writer.close();
        }
        catch (IOException e) {
            System.out.println("Cannot write to file");
        }
    }

    public void loadGame() {
        String line = null;
        String filename = "saveFile.txt";
        try {
            BufferedReader reader = new BufferedReader(new FileReader(filename));
            do {
                try {
                    line = reader.readLine();

                } catch (IOException e) {
                    System.out.println("Cannot read from text file");
                }
            }
            while (line != null);
            reader.close();
        } catch (IOException e) {
        }
    }
}


public LifeApplication()
{
    ...

    loadSave = new LoadSave();
    loadSave.lifeAaplication = this;

    ....
}