我正在尝试使用我在此类中创建的函数,但它崩溃并说“警告:无法在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();
}
}
答案 0 :(得分:3)
查看您的pastebin转储,问题不在于您的Grabar
课程,而在于init()
课程的GameManager
功能。您正试图在touchFile()
个实例上致电Grabar
,但尚未使用new
运营商创建一个。
在touchFile()
方法的init()
方法之前的某处添加此行:
grabar = new Grabar();