创建文本文件时的Java Nullpointerexception

时间:2013-05-07 03:31:33

标签: java nullpointerexception

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

以下是我制作的课程: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();
    }

}

1 个答案:

答案 0 :(得分:3)

查看您的pastebin转储,问题不在于您的Grabar课程,而在于init()课程的GameManager功能。您正试图在touchFile()个实例上致电Grabar,但尚未使用new运营商创建一个。

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

grabar = new Grabar();