2012-02-17 25 views
0

我有一個xml文件,我把它作爲資源包含在我的netbeans項目中。現在如何使用BufferedReader.readLine()方法從輸入流中讀取文本,格式爲XML?

,我試圖通過線與一個InputStream讀者在線閱讀:

static InputStream nudeMap = Main.class.getResourceAsStream("overlay_map_2007.txt"); 

static BufferedReader br = new BufferedReader(new InputStreamReader(nudeMap,"UTF-8")); 

=>此得到滿足的錯誤:

Exception in thread "Thread-4" java.lang.NullPointerException 
    at java.io.Reader.<init>(Reader.java:61) 
    at java.io.InputStreamReader.<init>(InputStreamReader.java:80) 

我檢查了文件的編碼,它確實是UTF-8,所以我不認爲這是一個編碼問題。我在這裏沒有任何經驗,但我懷疑它可能來自文件實際上是xml格式的事實。第一行是:

<?xml version="1.0" encoding="UTF-8"?> 
<gexf xmlns:viz="http:///www.gexf.net/1.1draft/viz" version="1.1" xmlns="http://www.gexf.net/1.1draft"> 

我想說的是,我不想寫的使用我有文件的解析器。你有沒有關於如何將它作爲一個普通的舊文本文件閱讀而沒有錯誤的線索?謝謝!

[編輯]:說清楚:我想用br.readLine()讀取這個文件;不是用Java Parser!

+0

確定該文件在構建後是否在類路徑中的正確位置? /不在XML上使用XML解析器是一個壞主意。 – 2012-02-17 22:16:56

回答

1

它看起來對我來說,你的文本文件ISN沒有被發現。換句話說,我猜getResourceAsStream返回null,這個空值導致你得到的NullPointerException。

項目中的overlay_map_2007.txt文件在哪裏?

如果此文件不在'默認'包中,那麼您需要'限定'資源的名稱。例如,如果它位於文件夾com.example.myproject內,資源名稱將是com/example/myproject/overlay_map_2007.txt

+0

非常感謝!我感謝您的幫助! – seinecle 2012-02-18 08:36:34

0

我不認爲你甚至不必走那麼遠。一個簡單的谷歌搜索產生與其DOM解析器這個很好的例子:

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/

有對DOM的事,再有就是SAX:

http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/

+0

沒有看到「asAStream」部分...這個怎麼樣? http://www.mkyong.com/java/how-to-read-utf-8-xml-file-in-java-sax-parser/ – Carlos 2012-02-17 21:30:47

+0

嗨,我編輯了這個問題,以表明我不是對xml解析器感興趣。我只想使用經典的bufferedReader.readLine()方法:是否可以在xml格式的文件上使用?它可能是我得到這個空指針異常的來源嗎?謝謝! – seinecle 2012-02-17 22:11:02

相關問題