# XML Datei in Java einlesen



## Frau Menke (12. Feb 2010)

Hallo, ich habe folgendes Problem:

Ich versuche eine XML-Datei in Java einzulesen. 


```
JFileChooser fileChooser = new JFileChooser();
		int result = fileChooser.showOpenDialog(null);
		File file = fileChooser.getSelectedFile();
		if(file != null &&
			result == JFileChooser.APPROVE_OPTION) {
                        
                        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document doc = db.parse(file.getName());
}
```

In Zeile 9 wirft die Methode parse eine 
java.io.FileNotFoundException: C:\.....\a.xml (Das System kann die angegebene Datei nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)

Wenn ich aber in dem Ordner C:\.....\a.xml nachschaue, befindet sich dort diese Datei, ist korrekt & lässt sich öffnen. (gilt auch für andere Orte)

Habe in Zeile 9 verschiedenes ausprobiert:

db.parse(file.getName());
db.parse(file); 
db.parse(file.getAbsolutePath());
db.parse(file.getAbsoluteFile());
... es kommt immer dieselbe Exception. Die XML-Dateien die ich versuchte in Java einzulesen sind korrekt, habe sie vorher gesehen. Leider kann ich in die Methode parse nicht reinschauen.

Wäre sehr dankbar wenn jemand mir dabei helfen könnte!


----------



## Murray (12. Feb 2010)

Bau doch mal folgende Ausgaben ein:

```
System.out.println( "file:<" + file.getAbsolutePath() + ">");
System.out.println( "file.exists:<" + file.exists() + ">");
System.out.println( "file.canRead:<" + file.canRead() + ">");
```


----------



## André Uhres (12. Feb 2010)

Mit "file" müsste es gewöhnlich funktionieren. Vielleicht wird die Datei irgendwo nicht sauber geschlossen. Versuch's mal so:

```
if (file != null && result == JFileChooser.APPROVE_OPTION) {
    FileInputStream fileInputStream = new FileInputStream(file);
    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(fileInputStream);
        System.out.println(doc.getFirstChild());
    } finally {
        fileInputStream.close();
    }
}
```


----------



## homer65 (12. Feb 2010)

Vielleicht hast du keine Lese Rechte für die Datei


----------



## André Uhres (12. Feb 2010)

homer65 hat gesagt.:


> Vielleicht hast du keine Lese Rechte für die Datei


Sieht nicht so aus:


Frau Menke hat gesagt.:


> Wenn ich aber in dem Ordner C:\.....\a.xml nachschaue, befindet sich dort diese Datei, ist korrekt & lässt sich öffnen.


----------

