有效地从文件中读取前两个字节 - Golang

Anu*_*ope 4 file go

我正在尝试使用Go找到从文件中读取前两个字节的好方法.

.zip在当前目录中有一些文件,与其他文件混合在一起.

我想循环遍历目录中的所有文件,并检查前两个字节是否包含正确的.zip标识符,即50 4B.

使用标准库而不必读取整个文件的好方法是什么?

通过io我设法找到的包中的可用功能:

func LimitReader(r Reader, n int64) Reader
Run Code Online (Sandbox Code Playgroud)

这似乎符合我的描述,它从Reader(如何得到Reader?)读取,但在n字节后停止.因为我对Go很新,所以我不确定如何去做.

jim*_*imt 6

您可以通过打开文件获得初始读者.对于2个字节,我不会使用LimitReader虽然.只需用io.ReadFull读取2个字节就更容易了.

r, err := os.Open(file)
if err != nil {
    return err
}

defer r.Close()

var header [2]byte
n, err := io.ReadFull(r, header[:])
if err != nil {
    return err
}
Run Code Online (Sandbox Code Playgroud)