2

ここと同じプロジェクトとテキストファイルを使用します:Java.NullPointerException null(再び)プログラムはデータを出力していますが、。あなたを写真に収めるには:

このプログラムは電話帳であり、最初の「コード」ブロックを無視し、そのリンクの2番目の「コード」ブロック、つまりエントリを含むテキストファイルを確認します。プログラムはそれらを適切に出力しますが、テキストファイルから読み取られたエントリの先頭にのみ表示されます。

それを削除する方法について何か助けはありますか?ファイルリーダーを含むバッファリーダーを使用しています。よろしくお願いします。

  • テキストファイルのエンコーディング:UTF-8
  • Java7の使用
  • Windows 7
4

2 に答える 2

5

読み込まれたテキストファイルはBOMでUTF-8を使用しますか?BOMサインのように見えます:"" http://en.wikipedia.org/wiki/Byte_order_mark

Windowsを実行していますか?Notepad++は変換できるはずです。LinuxまたはVI(M)を使用している場合は、「:setnobomb」を使用できます。

于 2013-02-05T14:58:39.967 に答える
1

入力ファイルはBOMを使用してUTF-8でエンコードされていると思います。

入力ファイルをBOMなしで保存するか、Javaで処理することができます。

ここでやりたいことは、適切なエンコーディングでInputStreamReaderを使用することです。悲しいことに、それは不可能です。つまり、JavaはUTF-8でエンコードされたファイルにBOMがないと想定しているため、その場合は手動で処理する必要があります。

簡単なハックは、ファイルの最初の3バイトがであるかどうかを確認し、0xEF, 0xBB, 0xBFそうである場合は無視することです。

より洗練された例については、この回答UnicodeBOMInputStreamのクラスをご覧ください。

于 2013-02-05T15:03:21.103 に答える