使用 FileStream 从原始文件中读取"start"到"stop"十六进制值



我想从;"开始";至";停止";来自我用FKT Imager创建的原始图像文件。

我有一个有效的代码,但我不知道这是否是最好的方法?

// Read file, byte at the time (example 00, 5A)
int start = 512;
int stop = 3345332;
FileStream fs = new FileStream("file.001", FileMode.Open, FileAccess.Read);
int hexIn;
String hex;
String data = "";
fs.Position = start;
for (int i = 0; i < stop; i++) { // i = offset in bytes
hexIn = fs.ReadByte();
hex = string.Format("{0:X2}", hexIn);
data = data + hex;
} //for
fs.Close();
Console.Writeline("data=" + data);

您想要从文件中读取一系列字节。为什么不将所有字节读入一个数组,然后进行转换呢?

private string ReadFile(string filename, int offset, int length)
{
byte[] data = new byte[length];
using (FileStream fs = new FileStream(filename, FileMode.Open))
{
fs.Position = offset;
fs.Read(data, 0, length);
}
return string.Join("", data.Select(x => x.ToString("X2")));
}

最新更新