定義したファイル タイプを表すために、ByteBuffer を介して byte[] にアクセスしようとしました。byte[] 内の最初の位置にはメタデータが含まれており、ビット操作で処理されます。したがって、それらは char をまったく表していません。
特定の固定位置にファイルデータ(文字など)を追加したい。
byte[] file_portion
大きなファイルの一部、つまり最初のセクションが含まれています。これには、メタデータを含むヘッダーが含まれます。
content
そのバッファに追加したい情報を含む文字列です。start_pos は、コンテンツからの新しいファイル データを保持する最初の位置です。
ByteBuffer my_content = ByteBuffer.allocate(this.file_portion.length);
content_buffer.wrap(this.file_portion);
for (int i = 0; i < content.length(); i++) {
char tmp = content.toCharArray()[i];
my_content.put(this.start_pos + i, (byte) tmp)
}
これを再マップすると、ガベージと空が得られます。
CharBuffer debug = my_content.asCharBuffer();
System.out.println("debug " + debug);
最初の位置が破損した文字を示しているかどうかは理解できました...しかし、1つの位置が正しいわけではありません。