0

我正在尝试使用我在主类中创建的函数,但它崩溃并显示“警告:无法在根 0 x80000002 打开/创建首选项根节点 Software\JavaSoft\Prefs。Windows RegCreateKeyEx(...) 返回错误代码5。每当我尝试执行grabar.touchFile()时,线程“main” java.lang.NullPointerException 中的异常;

这是我制作的课程:http: //pastebin.com/eNWrp07f

package com.brackeen.javagamebook.grabar;

import java.io.*;

public class Grabar{
    private int mapaTexto;
    private String nombreArchivo = "Grabar.txt";

    public void touchFile() throws IOException{
        File f = new File(nombreArchivo);
        if (!f.isFile())
            f.createNewFile();
    }

    public int readFile() throws IOException{
        try{
            touchFile();
        } catch(IOException ex){
            ex.printStackTrace();
        }

        BufferedReader fileIn = new BufferedReader(new FileReader(nombreArchivo));
        String dato = fileIn.readLine();
        int mapaTexto = Integer.parseInt(dato);
        fileIn.close();
        return mapaTexto;
    }

    public void writeFile(int n) throws IOException{
        try{
            touchFile();
        } catch(IOException ex){
            ex.printStackTrace();
        }
        PrintWriter fileOut = new PrintWriter(new FileWriter(nombreArchivo));
        fileOut.println(n);
        fileOut.close();
    }

}
4

1 回答 1

3

查看您的 pastebin 转储,问题不在于您的Grabar班级,而init()在于您班级的职能GameManager。您正在尝试调用touchFile()您的Grabar实例,但尚未使用new操作员创建实例。

touchFile()在方法中的方法之前的某处添加此行init()

grabar = new Grabar();
于 2013-05-07T04:13:30.070 回答