Rumah >pembangunan bahagian belakang >Golang >Bagaimana Saya Boleh Membaca dan Memanipulasi Fail Binari dalam Go?

Bagaimana Saya Boleh Membaca dan Memanipulasi Fail Binari dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 18:13:15948semak imbas

How Can I Read and Manipulate Binary Files in Go?

Membaca dan Memanipulasi Fail Binari dalam Go

Apabila bekerja dengan fail binari dalam Go, pakej os menyediakan fungsi untuk membuka dan memanipulasi fail . Untuk membuka fail binari, gunakan fungsi os.Buka:

f, err := os.Open("myfile")
if err != nil {
    panic(err)
}

Setelah fail dibuka, terdapat pelbagai pilihan untuk membaca data.

Membaca Bait Terus

Untuk membaca bilangan bait tertentu terus ke dalam penimbal, gunakan kaedah Baca os.File taip:

buf := make([]byte, 10)
n, err := f.Read(buf)
if err != nil {
    panic(err)
}

Bacaan Penimbalan

Untuk lebih fleksibiliti, gunakan pembaca penimbal. Balut os.Fail dalam bufio.Reader:

r := bufio.NewReader(f)

Pembaca buffer membenarkan pembacaan data yang mudah menggunakan kaedah ReadString, ReadLine dan ReadBytes.

Pengekodan/ Pakej Binari

Untuk bekerja dengan data binari khususnya, pengekodan/perduaan pakej menyediakan fungsi Baca:

var value int
err := binary.Read(f, binary.LittleEndian, &value)
if err != nil {
    panic(err)
}

Pakej Io/Ioutil

Pakej io/ioutil menawarkan fungsi yang lebih mudah untuk membaca keseluruhan fail:

data, err := ioutil.ReadFile("myfile")
if err != nil {
    panic(err)
}

Sumber Tambahan

Untuk penjelasan yang lebih mendalam dan contoh, rujuk dokumentasi Go dan yang berikut sumber:

  • [os.Open](https://golang.org/pkg/os/#Open)
  • [bufio](https://golang.org/ pkg/bufio/)
  • [e ncoding/binary](https://golang.org/pkg/encoding/binary/)
  • [io/ioutil](https://golang.org/pkg/io/ioutil/)

Atas ialah kandungan terperinci Bagaimana Saya Boleh Membaca dan Memanipulasi Fail Binari dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn