1

私はバイナリ IO スキルを向上させようとしているので、mobi 形式の電子ブックを読み取り、本の名前を表示するために最初の 32 バイトを出力する単純なユーティリティを作成しています。

Palm Database Format では、バイナリ ファイルの最初の 32 バイトにデータベース/ブック名が含まれており、この名前は 0 で終了することが示されています。

読み取ったバイトがヌルで終了しているかどうかを確認する方法がわかりません。

File file = new File("ebook.mobi");
DataInputStream in = new DataInputStream(new FileInputStream(file));

int count = 1;
while(count++ <= 32){
    System.out.print((char)in.readByte());
}       
in.close();

この場合、出力は次のように出力されます。

Program_or_Be_Programmed <--- this is immediately followed by a number of square symbols

while ループを無駄に変更しようとしました:

while(count++ < 32 || in.readByte != 0)

0バイトに遭遇したときに文字を印刷するループを停止するステートメントを追加したいと思います。

これをどのように実装しますか?

4

2 に答える 2