Java 使用扫描仪读取文件时获取空指针异常
我想读取一个文本文件并解析字符串直到eof..这里是一个代码片段。。programs.txt位于资产目录下Java 使用扫描仪读取文件时获取空指针异常,java,android,Java,Android,我想读取一个文本文件并解析字符串直到eof..这里是一个代码片段。。programs.txt位于资产目录下 public void insert_programs() throws FileNotFoundException { BufferedReader bfr = null; try { bfr = new BufferedReader(new InputStreamReader(getAssets().open("
public void insert_programs() throws FileNotFoundException {
BufferedReader bfr = null;
try {
bfr = new BufferedReader(new
InputStreamReader(getAssets().open("programs.txt"))); // <-- NPE occurs on that line
} catch (IOException e) {
e.printStackTrace();
}
Scanner pgm = new Scanner(bfr);
pgm.useDelimiter("*{3}");
while (pgm.hasNext()) {
String str = pgm.next();
process(str);
}
}
看起来您的BufferedReader将为null。您是否尝试过将扫描程序代码放入try-catch块中。如果您的程序得到IOException,那么bfr将为null,您将得到NPE
public void insert_programs() throws FileNotFoundException {
BufferedReader bfr = null;
try {
bfr = new BufferedReader(new
InputStreamReader(getAssets().open("programs.txt")));
Scanner pgm = new Scanner(bfr);
pgm.useDelimiter("*{3}");
while (pgm.hasNext()) {
String str = pgm.next();
process(str);
}
} catch (IOException e) {
e.printStackTrace();
}
}
看起来您的BufferedReader将为null。您是否尝试过将扫描程序代码放入try-catch块中。如果您的程序得到IOException,那么bfr将为null,您将得到NPE
public void insert_programs() throws FileNotFoundException {
BufferedReader bfr = null;
try {
bfr = new BufferedReader(new
InputStreamReader(getAssets().open("programs.txt")));
Scanner pgm = new Scanner(bfr);
pgm.useDelimiter("*{3}");
while (pgm.hasNext()) {
String str = pgm.next();
process(str);
}
} catch (IOException e) {
e.printStackTrace();
}
}
将此添加到代码中:
bfr = new BufferedReader(new
InputStreamReader(this.getAssets().open("programs.txt")));
将此添加到代码中:
bfr = new BufferedReader(new
InputStreamReader(this.getAssets().open("programs.txt")));
该方法正在抛出
NullPointerException
。您正在扩展ContextWrapper
(或扩展它的另一个类),但它似乎尚未正确初始化。ContextWrapper
中的基为空。该方法正在抛出NullPointerException
。您正在扩展ContextWrapper
(或扩展它的另一个类),但它似乎尚未正确初始化。ContextWrapper
中的基为空。您是否愿意将您的代码放在NPE发生的位置?(使用类似于//的注释,您能提供您看到的输出吗?您的问题是什么?我已经添加了注释..我也添加了日志。您是否愿意在发生NPE的地方添加代码?(使用类似于//的注释,你能提供你看到的输出吗?你的问题到底是什么?我已经添加了注释..我也放置了日志