如何读取文件的各个字节

时间:2012-09-06 16:44:53

标签: .net compression bytearray

我正在尝试确定文件是否已使用GZip协议进行压缩。

共识似乎是我需要读取文件的前两个字节,并检查它们是否等于0x1f8b。我刚刚得知这是一个神奇的数字。

我如何,最好使用.Net / C#,因为这是我习惯的,读取文件的各个字节?

三江源

3 个答案:

答案 0 :(得分:2)

你可以试试这个......

您可能需要为v使用不同的变量类型,或者您可以转换int ...

using (BinaryReader b = new BinaryReader(File.Open("file.bin", FileMode.Open)))
{
    int v = b.ReadByte();
    Console.WriteLine(v);
}

答案 1 :(得分:1)

读取文件的两个(第一个)字节的最简单方法是打开FileStream然后只读取两个字节:

FileStream fs = new FileStream( "D:\\path_to_file\file.ext", FileMode.Open);
int value = fs.ReadByte();
...

当然你应该检查文件是否存在,如果app没有运行时有足够的权限来读取文件,请抓住异常,当你完成它时关闭流(访问文件)......

使用FileStream的Read方法(允许您一次读取多个字节)可能更方便。请注意,此方法也有异步等效。

答案 2 :(得分:0)

通常在x86中,char是一个字节长的数据类型,因此读取文件的前两个字符就可以了。

相关问题