是的,我已经阅读了 Stackoverflow 上关于 NPE 的优秀解释,并且我理解了它们的意思。然而,我在该教科书的一个示例练习中发现(我想我发现)了一个关于这个 NPE 的问题,事实上,我很久以前在哈佛使用过。
它是关于引用变量 String line = null; 正如解释所说,没有对象被创建,而它后来被尝试用作这样的对象(所以我认为),更准确地说,当 line = inputStream.nextLine(); 时尝试被访问。这是代码,问题是如何解决这个问题。我曾尝试实例化一个对象,但......没有奏效。
package test;
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.FileOutputStream;
public class Test
{
public static void main(String[] args) {
Scanner inputStream = null;
PrintWriter outputStream = null;
try {
inputStream = new Scanner(new FileInputStream("original.txt"));
outputStream = new PrintWriter(
new FileOutputStream("numbered.txt"));
} catch (FileNotFoundException e) {
System.out.println("Problem opening files.");
System.exit(0);
}
String line = null;
int count = 0;
while (inputStream.hasNextLine()) {
line = inputStream.nextLine();
count++;
outputStream.println(count + " " + line.toString());
}
inputStream.close();
outputStream.close();
}
}
是的,我试图运行它。我将代码复制并粘贴到 Netbeans 7.3 上新创建的项目中