Вот код, который я написал на данный момент.Это работает, но я думаю, что это не эффективно.
int byteSize = 16;
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[byteSize]; // in this buffer I'm saving the 16 bytes read
while (fs.Read(buffer, 0, byteSize) > 0)
{
string temp = System.Text.RegularExpressions.Regex.Replace(ByteArrayToHexViaLookup32(buffer), ".{2}", "$0 ");
Console.WriteLine(temp);
}
}
Для шестнадцатеричного преобразования я использую функцию "ByteArrayToHexViaLookup32", которую я нашел на этом сайте, и она очень быстрая и эффективная.Файлы, которые программа прочитает, имеют размер 700-800 килобайт.Регулярное выражение предназначено только для видимости / отладки консоли (добавляет пробел для каждого байта), поэтому оно не будет там в ближайшее время.
Мой ЦП получает быстрый скачок до 30% и завершает процесс за 2/3 секунды.Вот почему я говорю, что это не самый эффективный способ сделать это.(У меня есть 6700HQ, так что я думаю, что на 2 Duo процессор, на котором будет работать эта программа, потребует намного больше)