C#のバイナリファイルで5メガバイトのチャンクを読み込むにはどうすればよいですか?チャンクのバイナリファイルを読み込むC#
すべてのチャンクに対して、私は何かをする必要があります... 私を助けてください!
C#のバイナリファイルで5メガバイトのチャンクを読み込むにはどうすればよいですか?チャンクのバイナリファイルを読み込むC#
すべてのチャンクに対して、私は何かをする必要があります... 私を助けてください!
FileStream
を使用してバイナリファイルを読み取り、処理します。ここに例があります:
using (var inFileSteam = new FileStream(@"C:\path\to\file.bin", FileMode.Open))
{
byte[] buffer = new byte[5 * 1024 * 1024]; // 5MB in bytes is 5 * 2^20
int bytesRead = inFileSteam.Read(buffer, 0, buffer.Length);
while (bytesRead > 0)
{
for (int i = 0; i < bytesRead; i++)
{
if (buffer[i] == 0x28) // 0010 1000 in binary
{
// replace for example or any other manipulation
buffer[i] = 0x00;
}
}
outFileStream.Write(buffer, 0, bytesRead);
bytesRead = inFileSteam.Read(buffer, 0, buffer.Length);
}
}
ありがとう!しかし、実際には、これは、 'A'または 'B'と、たとえば '0101000'(これが存在するかどうかわからないランダム)を置き換えたい場合には機能しません。 – Ben
@Ben私の更新された答えを見てください。書き込むファイルがもう1つ必要です。完了したら、入力ファイルを出力ファイルに置き換えることができます。 – Nasreddine
バイナリファイルの場合は、文字列に変換しない方がよいでしょう。 – Nasreddine
はい申し訳ありません...私のせいです。ファイル.binを読み込んで、いくつかのバイトを他のバイトに置き換える必要があります...ありがとう! @Nasreddine – Ben