2017-02-04 6 views
1

Ich muss Schlüssel/Werte einer Zuordnung zu einer XML-Datei serialisieren und sie dann deserialisieren.UnknownHostException nach dem Versuch, eine XML-Datei zu lesen

Map<String,Integer> map = new HashMap<>(); 
// ... 
LinkedList<Element> l = new LinkedList<Element>(); 
Element root = new Element("root"); 
for (String str : map.keySet()) { 
    l.add(new Element(str)); // key 
    l.getLast().appendChild(map.get(str).toString()); // value 
    root.appendChild(l.getLast()); 
} 
Document d = new Document(root); 

BufferedWriter out = new BufferedWriter(new FileWriter("data.xml")); 
out.write(d.toXML()); 
out.close(); 

d = new nu.xom.Builder().build("data.xml"); // ! 
Elements e = d.getRootElement().getChildElements(); 

Aber wenn ich versuche, die XML-Datei zu lesen, wird UnknownHostException auf der markierten Linie geworfen.

Exception in thread "main" java.net.UnknownHostException: file 

Die XML-Datei wurde jedoch erfolgreich erstellt. Die formatierte Version sieht so aus:

<?xml version="1.0"?> 
<root> 
    <through>1</through> 
    <don>1</don> 
    <backed>1</backed> 
    <I>2</I> 
    <asList>1</asList> 
// .... 
</root> 

Könnten Sie mir bitte erklären, was das Problem ist?

+0

wissen Sie, was 'build()' als Parameter nimmt, wenn der Dateiname den vollständigen Pfad zur Datei zur Verfügung stellt dann. –

+0

sollten Sie [dies] (http://stackoverflow.com/help/someone-answers) folgen. –

Antwort

3

Nach dem doc wies von @delephin, seine besseren build(File in) Version von build Methode zu verwenden, übergeben Sie die File Instanz im Zusammenhang mit Ihrem data.xml zu Ihre build() Methode, wie unten

d = new nu.xom.Builder().build(new File("data.xml")); 
+0

Das ist besser! :) –

+0

@AlastairMcCormack Danke. –

1

Sie müssen eine korrekte URL zu build() passieren, enthält diese lokale Dateien.

Sie können die URL für eine lokale Datei erhalten mit:

new File(path).toURI().toURL(); 
Verwandte Themen