short型の配列をバイナリファイルから読み込む(C#)

0

C#でバイナリを読み込む機会がありましたので、メモ。
ターゲットフレームワークは .NET Core 2.1。
後述のように、より効率的な方法があるかもしれません。
パフォーマンス必要な方は、またお調べ下さい。

コメント

10: 実行ディレクトリ(Debug\netcoreapp2.1 等)に input.dat がある想定。
13: input.dat は short型の数値を格納している前提。全byte ÷ short (2byte)。
14: ReadInt16 にて short で取得する。
15: 比較のために読み込んだ内容をそのまま output.dat に出力する。

補記

ファイルへの書き込みについては、MemoryMarshal の Cast による、より効率的な方法があるとの事(以下リンク)。しかし、議論されているように、わずかなパフォーマンスの向上のために、移植性また難読化のリスクを取るのはどうか。。。との事。

Efficiently writing an int array to file

メモリ上のコピー無しに int を byte に変更してそれを書いているみたい。
本記事のコードはパフォーマンスは最適化されてません。

カテゴリー:


0