.net 如何读取文件的各个字节

.net 如何读取文件的各个字节,.net,compression,bytearray,.net,Compression,Bytearray,我正在尝试确定是否使用GZip协议压缩了文件 共识似乎是我需要读取文件的前两个字节,并检查它们是否等于0x1f8b。我刚刚知道这是一个神奇的数字 我如何读取文件的各个字节,最好是使用.Net/C,因为我已经习惯了这样做 谢谢通常在普通x86中,char是一个字节长的数据类型,所以读取文件的前两个字符就可以了。通常在普通x86中,char是一个字节长的数据类型,所以读取文件的前两个字符就可以了。读取这两个字符的最简单方法(第一个)文件字节是指打开文件流,然后只读取两个字节: FileStream

我正在尝试确定是否使用GZip协议压缩了文件

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

我如何读取文件的各个字节,最好是使用.Net/C,因为我已经习惯了这样做


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

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

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

FileStream fs = new FileStream( "D:\\path_to_file\file.ext", FileMode.Open);
int value = fs.ReadByte();
...
当然,您应该检查文件是否存在,如果应用程序运行时没有足够的权限读取文件,则捕获异常,处理完文件后关闭流(访问文件)


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

读取文件的两个(前)字节的最简单方法是打开文件流,然后仅读取两个字节:

FileStream fs = new FileStream( "D:\\path_to_file\file.ext", FileMode.Open);
int value = fs.ReadByte();
...
当然,您应该检查文件是否存在,如果应用程序运行时没有足够的权限读取文件,则捕获异常,处理完文件后关闭流(访问文件)

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

您可以尝试此方法

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

using (BinaryReader b = new BinaryReader(File.Open("file.bin", FileMode.Open)))
{
    int v = b.ReadByte();
    Console.WriteLine(v);
}
你可以试试这个

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

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