java - 如何使用 BufferedReader.readLine() 方法从输入流中读取 XML 格式的文本?

标签 java xml netbeans inputstream

我有一个 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">

我的观点是,我不想为我对文件的使用编写解析器。您知道我如何将其作为纯旧文本文件读取而不会出现错误吗?谢谢!

[编辑]:明确地说:我想用 br.readLine() 读取此文件;不使用 Java 解析器!

最佳答案

在我看来,没有找到您的文本文件。换句话说,我猜测 getResourceAsStream 返回 null,而这个 null 值导致您收到 NullPointerException。

您的项目中的overlay_map_2007.txt 文件位于何处?

如果此文件不在“默认”包中,则您需要“限定”资源的名称。例如,如果它位于文件夹 com.example.myproject 中,则资源名称将为 com/example/myproject/overlay_map_2007.txt

关于java - 如何使用 BufferedReader.readLine() 方法从输入流中读取 XML 格式的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9335578/

相关文章:

java - 使用 Streams 通过特定属性获取两个列表之间的共同元素和差异

java - 如何使用 Spring Boot 在 JSON 中包含 ID

java - 再次出现UnknownHostException!

java - 如何在 Java 中从 JTextField 设置 Bean 属性值?

javascript - Firebug 错误 : no element found

xml - 如何最好地为聊天机器人存储数据?

java - 正则表达式替换后格式错误的 xml

java - 将 system.out 放入自动生成的 JTextArea 中

java - 我可以在不需要代码编辑器环境的情况下运行java程序吗?

Java Netbeans : How to layer panels on top of each other?