Go言語でバイナリファイルを作成する

ちょっとしたバイナリファイルをgoで作成する方法。

サンプルはsjisで「あいうえお」の文字コードと改行コードCRを出力している。

package main

import (
	"bytes"
	"encoding/binary"
	"os"
)

func main() {
	buf := new(bytes.Buffer)

	var data = []byte{
		byte(0x82), byte(0xa0),
		byte(0x82), byte(0xa2),
		byte(0x82), byte(0xa4),
		byte(0x82), byte(0xa6),
		byte(0x82), byte(0xa8),
		byte(0x0d),
	}
	err := binary.Write(buf, binary.BigEndian, data)
	if err != nil {
		panic(err)
	}

	file, _ := os.Create("result.txt")
	defer file.Close()
	file.Write(buf.Bytes())
}

Python2だとこう

with open("result.txt", "wb") as f:
    f.write(bytearray([0x82, 0xa0,
                       0x82, 0xa2,
                       0x82, 0xa4,
                       0x82, 0xa6,
                       0x82, 0xa8,
                       0x0d]))