簡體   English   中英

如何使用BufferedReader.readLine()方法從格式為XML的輸入流中讀取文本?

[英]How to read text from an inputstream, formatted as XML, with a BufferedReader.readLine() method?

我有一個xml文件,該文件作為資源包含在我的netbeans項目中。

現在,我嘗試使用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解析器!

在我看來,找不到您的文本文件。 換句話說,我猜想getResourceAsStream返回null ,而這個null值導致您得到NullPointerException。

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

如果該文件不在“默認”程序包中,則需要“限定”資源名稱。 例如,如果它位於文件夾com.example.myproject ,則資源名稱將為com/example/myproject/overlay_map_2007.txt

我認為您甚至不必走那么遠。 一個簡單的Google搜索通過其DOM Parser產生了一個很好的例子:

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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM