尝试读取XML文件后出现UnknownHostException

时间:2017-02-04 18:53:16

标签: java xml exception xom

我必须将地图的键/值序列化为XML文件,然后对它们进行反序列化。

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();

但是当我尝试读取XML文件时,标记的行上会抛出UnknownHostException

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

虽然成功创建了XML文件。格式化版本如下:

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

你能解释一下我的问题是什么吗?

3 个答案:

答案 0 :(得分:3)

根据@delephin指出的文档,最好使用build(File in)版本的build方法,将与File相关联的data.xml实例传递给build() 1}}方法,如下所示

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

答案 1 :(得分:1)

构建方法需要一个URL:Builder.build(String)

答案 2 :(得分:1)

您需要将正确的网址传递给build(),其中包括本地文件。

您可以使用以下方式获取本地文件的URL:

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