Как читать текст из входного потока, отформатированного как XML, с помощью метода BufferedReader.readLine ()? - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть XML-файл, который я включил в качестве ресурса в свой проект netbeans.

Теперь я пытаюсь прочитать его построчно с помощью считывателя входного потока:

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">

Суть в том, что я не хочу писать парсер для использования файла. Есть ли у вас какие-либо подсказки о том, как я могу прочитать это как простой старый текстовый файл, без ошибок? Thx!

[РЕДАКТИРОВАТЬ]: пояснить: я хочу прочитать этот файл с помощью br.readLine (); не с парсером Java!

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Мне кажется, что ваш текстовый файл не найден. Другими словами, я бы предположил, что getResourceAsStream возвращает null, и это нулевое значение вызывает исключение NullPointerException, которое вы получаете.

Где находится файл overlay_map_2007.txt в вашем проекте?

Если этот файл не входит в пакет «по умолчанию», то вам необходимо «уточнить» имя ресурса. Например, если он находится в папке com.example.myproject, имя ресурса будет com/example/myproject/overlay_map_2007.txt.

0 голосов
/ 18 февраля 2012

Не думаю, что вам даже придется заходить так далеко. Простой поиск в Google дал этот прекрасный пример с парсером 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/

...