特定のバイナリファイルを読み取ろうとしていますが、3バイトのビッグエンディアン整数が含まれています。私は最近MonoDataConvertに出くわしました。これは、これらの3バイト整数を除いて、私が望むほとんどのものに適しているはずです。読み方がわかりません。それらを3バイト整数として保持する必要はないことに注意してください。通常の整数に読み取るのInt32
が理想的です。私はかなりの量のデータを読んでいるので、効率的なものを探しています。助言がありますか?
理想的なコードのサンプル:
public Region(string regionFile)
{
var conv = DataConverter.BigEndian;
var chunks = new Chunk[Chunk.MaxLocations];
using (var fs = File.OpenRead(regionFile))
{
var buffer = new byte[4096];
fs.Read(buffer, 0, buffer.Length);
// Read chunk locations
for (int i = 0; i < Chunk.MaxLocations; ++i)
{
chunks[i] = new Chunk(conv.ToInt24(buffer, i * 4), buffer[i * 4 + 3]);
}
}
}
conv.ToInt24
存在しないことを除いて、私はそのようなことをしたいです。ビットシフトで自分で書けると思います...