使用与此处相同的项目和文本文件:Java.NullPointerException null(再次)程序正在输出数据,但带有
. 把你放在图片中:
该程序是一个电话簿,忽略第一个“代码”块,查看该链接上的第二个“代码”块,即带有条目的文本文件。程序按应有的方式输出它们,但它仅

在从文本文件读取的条目的开头给出。
关于如何删除它的任何帮助?我正在使用带有文件阅读器的缓冲阅读器。先谢谢了。
- 文本文件编码:UTF-8
- 使用 Java 7
- Windows 7的
使用与此处相同的项目和文本文件:Java.NullPointerException null(再次)程序正在输出数据,但带有
. 把你放在图片中:
该程序是一个电话簿,忽略第一个“代码”块,查看该链接上的第二个“代码”块,即带有条目的文本文件。程序按应有的方式输出它们,但它仅

在从文本文件读取的条目的开头给出。
关于如何删除它的任何帮助?我正在使用带有文件阅读器的缓冲阅读器。先谢谢了。
文本文件中的读取是否使用带有 BOM 的 UTF-8?它看起来像 BOM 标志:“” http://en.wikipedia.org/wiki/Byte_order_mark
你在运行Windows吗?Notepad++ 应该能够转换。如果使用 linux 或 VI(M) 你可以使用 ":set nobomb"
我想你的输入文件是用UTF-8 编码的 BOM。
您可以在没有 BOM 的情况下保存输入文件,也可以在 Java 中处理。
在这里可能想要做的事情是使用具有适当编码的InputStreamReader 。可悲的是,这是不可能的。问题是,Java假定UTF-8 编码文件没有 BOM,因此您必须手动处理这种情况。
一个快速的技巧是检查文件的前三个字节是否为0xEF, 0xBB, 0xBF
,如果是,则忽略它们。
有关更复杂的示例,请查看此答案UnicodeBOMInputStream
中的类。