はい、StackoverflowにあるNPEに関する優れた説明を読み、その意味を理解しました。それでも、その教科書のサンプル演習の1つで、この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();
}
}
そして、はい、私はそれを実行しようとしました。Netbeans7.3で新しく作成したプロジェクトにコードをコピーして貼り付けました