Go语言 操作二进制文件

这里写自定义目录标题


二进制文件的内容:

Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 12 31 23 12 31 22 31 23 12 31 22 22 22 22 22 22 1# 1"1# 1""""""
00000010 22 22 22 12 23 12 23 00 00 00 00 00 00 00 00 00 “”" # #
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

代码:

package main

import (
	"bytes"
	"fmt"
	"io"
	"os"
)

func main() {
	file, err := os.OpenFile("test", os.O_RDONLY, os.ModePerm)
	if err != nil {
		defer file.Close()
		os.Exit(0)
	}
	file.Seek(8, 0)
	fmt.Println("Success Open File")
	var buffer bytes.Buffer
	io.CopyN(&buffer, file, 8)
	_bytes := buffer.Bytes()
	var magic []byte = []byte{0x12, 0x31, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}
	for _, byte := range _bytes {
		fmt.Printf("%02X ", byte)
	}
	fmt.Println()
	if bytes.Compare(magic, _bytes) == 0 {
		fmt.Println("Equal")
	}
}

结果:

Success Open File
12 31 22 22 22 22 22 22 
Equal
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值