私は以下のプログラムを書いていますが、何とか私のFileReaderが変数readerにnullを書き込みます。次の行で、BufferdReaderがNullPointerExceptionでクラッシュします。 パスをファイルにコピーしたので、正しいと見なします。なぜFileReaderがnullを返すのですか?
public class MyPaintPanel extends JPanel{
private static final long serialVersionUID = 1L;
//Bild einlesen
private BufferedImage image = null;
{
try {
File imageFile = new File ("C:/Users/M/workspace/Praktikum/lab4/geoPosition/OSM_BerlinerTor.png");
image = ImageIO.read(imageFile);
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error image not found.");
}
}
//Route einlesen
{
try {
//Öffne Datei
File file = new File("C:/Users/M/workspace/Praktikum/lab4/geoPosition/RouteGeo.txt");
System.out.println("file = "+file);
FileReader reader = FileReader(file);
System.out.println("reader = "+reader);
BufferedReader bufferedReader = new BufferedReader(reader);
//Arbeite mit Datei
while (bufferedReader.ready()) {
System.out.println(bufferedReader.readLine());
}
//Schließe Datei
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error file not found.");
} catch (NullPointerException e){
e.printStackTrace();
System.out.println("Error file not found.");
} finally {
}
}
}
これは私のプログラムの出力です。私はSystem.out.println()をいくつか追加して、変数に正確に何が含まれているか調べました。
file = C:\Users\M\workspace\Praktikum\lab4\geoPosition\RouteGeo.txt
reader = null
java.lang.NullPointerException
Error file not found.
at java.io.Reader.<init>(Unknown Source)
at java.io.BufferedReader.<init>(Unknown Source)
at java.io.BufferedReader.<init>(Unknown Source)
at lab4.geoPosition.MyPaintPanel.<init>(MyPaintPanel.java:61)
at lab4.geoPosition.GeoGUI.<init>(GeoGUI.java:90)
at lab4.geoPosition.GeoGUI.main(GeoGUI.java:215)
私はFileReaderメソッドを見つけました。私は彼がそれを完全に空にしているので、自動的に生成すると思います。
private FileReader FileReader(File file2) {
// TODO Auto-generated method stub
return null;
}
あなたが指定したコードは、あなたがどこかで宣言していない 'FileReader'メソッドを持っていなければコンパイルされません。 [mcve]を入力してください。 –
ここでは次のようにしています:new new new(在庫があるので:p) –
'new FileReader(file)'を意味しても、 'new'演算子は決してnullを返しません。だから唯一の解釈は、あなたのコードのどこかにnullを返す 'FileReader(File)'メソッドがあるということです。 – khelwood