首页 文章

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

提问于
浏览
3

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

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

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

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

通过 io 包中的可用函数,我设法找到:

func LimitReader(r Reader, n int64) Reader

这似乎符合我的描述,它从 Reader 读取(我如何获得 Reader ?)但在 n 字节后停止 . 因为我不知道如何去做 .

1 回答

  • 5

    您可以通过打开文件获得初始读者 . 对于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
    }
    

相关问题