2

使用与此处相同的项目和文本文件:Java.NullPointerException null(再次)程序正在输出数据,但带有. 把你放在图片中:

该程序是一个电话簿,忽略第一个“代码”块,查看该链接上的第二个“代码”块,即带有条目的文本文件。程序按应有的方式输出它们,但它仅在从文本文件读取的条目的开头给出。

关于如何删除它的任何帮助?我正在使用带有文件阅读器的缓冲阅读器。先谢谢了。

  • 文本文件编码:UTF-8
  • 使用 Java 7
  • Windows 7的
4

2 回答 2

5

文本文件中的读取是否使用带有 BOM 的 UTF-8?它看起来像 BOM 标志:“” http://en.wikipedia.org/wiki/Byte_order_mark

你在运行Windows吗?Notepad++ 应该能够转换。如果使用 linux 或 VI(M) 你可以使用 ":set nobomb"

于 2013-02-05T14:58:39.967 回答
1

我想你的输入文件是用UTF-8 编码的 BOM

您可以在没有 BOM 的情况下保存输入文件,也可以在 Java 中处理。

在这里可能想要做的事情是使用具有适当编码的InputStreamReader 。可悲的是,这是不可能的。问题是,Java假定UTF-8 编码文件没有 BOM,因此您必须手动处理这种情况。

一个快速的技巧是检查文件的前三个字节是否为0xEF, 0xBB, 0xBF,如果是,则忽略它们。

有关更复杂的示例,请查看此答案UnicodeBOMInputStream中的类。

于 2013-02-05T15:03:21.103 回答