私はJavaが初めてで、Cで何年もの経験があります。助けていただければ幸いです。
10 進ファイルがあり、ヘッダーを見つけてそこからデータを選択し、再度ヘッダーを探す必要があります。私のファイルが次のようになっているとしましょう:
480 124 125 001 047 001 047 001 480 001 001 001 001 001 001 001 001 001 001 001 001 047 001 480 002 002 002 002 002 002 002 002
私のヘッダーは次のとおりです。
001 047 001 480
ヘッダーは、「ヘッダー」と呼ばれる int 配列に格納されます。
私は複数の方法を試しました-コード:
Integer i1 = new Integer(this.header[0]);
Integer i2 = new Integer(this.header[1]);
Integer i3 = new Integer(this.header[2]);
Integer i4 = new Integer(this.header[3]);
nextDec.hasNext(i1.toString() + i2.toString() + i3.toString() + i4.toString());
true を期待していますが、false を返します。ファイル内のヘッダー番号の先頭のゼロを削除しても false を返します (実際には削除できません)。
コード:
nextDec.findInLine(i1.toString() + " " + i2.toString() + " " + i3.toString() + " "
+ i4.toString());
ヘッダーを返すことを期待していますが、null を返します。ファイル内のヘッダー番号の先頭のゼロを削除すると、ヘッダーが返されます。hasNext メソッドで機能しなかったのはなぜですか?
コード:
nextDec.findInLine(Arrays.toString(header));
出力がまったくないのはなぜですか? 先行ゼロでヘッダーを検出し、データを取得して再検索するにはどうすればよいですか? ヘッダーが見つかった場所 (インデックス) を見つけることは可能ですか?
ありがとうございました
私はより明確にしようとします。モニターソフトを使ってストリーミングデータをPCに記録しています。データは 10 進数形式でファイルに記録され、先行ゼロ (3 桁の数字を持つため) と数字の間にスペースが入ります。ファイルには複数のバッファが含まれています。データ バッファーは 4 バイトのヘッダーで始まります。ファイル内でヘッダーを見つけて、グラフに表示される適切な変数に続くデータを収集する必要があります。ヘッダーが見つかった後に読み取りたいデータの種類に応じて、nextInt、nextFloat を使用することを考えていました。
ありがとうございました