다음 프로그램을 작성했지만 어떻게 든 내 FileReader는 변수 판독기에 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 방법을 발견, 나는 그가 그것을 자동 생성의 allmost 비어 있기 때문에 생각합니다. 당신이 FileReader
를 인스턴스화 한 다음 빈 메소드가 컴파일 할 FileReader
라는 자동 생성 될 때 new
을 넣어하는 것을 잊지처럼
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