Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Baca kandungan fail menggunakan fungsi bufio.NewReader dalam dokumentasi bahasa Go

Baca kandungan fail menggunakan fungsi bufio.NewReader dalam dokumentasi bahasa Go

WBOY
WBOYasal
2023-11-03 20:07:46956semak imbas

Baca kandungan fail menggunakan fungsi bufio.NewReader dalam dokumentasi bahasa Go

Gunakan fungsi NewReader dalam pakej bufio bahasa Go untuk membaca kandungan fail dengan mudah. Seterusnya, mari kita lihat cara menggunakan fungsi ini untuk membaca fail dan melaksanakan beberapa operasi asas.

Pertama, kita perlu mengimport pakej bufio:

import (
    "bufio"
    "fmt"
    "os"
)

Fungsi NewReader mencipta pembaca buffer jenis bufio.Reader, yang akan membaca kandungan fail baris demi baris dan cache ke dalam memori untuk bacaan seterusnya.

Kami boleh membaca fail dan mencetaknya baris demi baris melalui kod berikut:

file, err := os.Open("test.txt")
if err != nil {
    panic(err)
}
defer file.Close()

reader := bufio.NewReader(file)
for {
    line, err := reader.ReadString('
')
    if err == io.EOF {
        break
    }
    if err != nil {
        panic(err)
    }
    fmt.Print(line)
}

Dalam kod tersebut, kami mula-mula membuka fail bernama test.txt, dan jika ralat berlaku, keluar dari program terus. Kemudian, buat pembaca buffer melalui fungsi NewReader dan kaitkan dengan fail.

Seterusnya, dalam gelung tak terhingga, kita boleh menggunakan fungsi readString untuk membaca kandungan fail baris demi baris dan mencetak setiap baris pada skrin. Jika aksara akhir fail EOF ditemui, keluar dari gelung. Jika tidak, jika ralat lain ditemui, pengecualian akan dilemparkan dan program keluar.

Selain itu, kita juga boleh menggunakan fungsi ReadBytes untuk membaca bait dalam fail dan menggunakan pakej rentetan untuk beroperasi pada bait ini. Kod berikut menunjukkan cara menukar kandungan yang dibaca kepada rentetan dan mencari subrentetan di dalamnya:

file, err := os.Open("test.txt")
if err != nil {
    panic(err)
}
defer file.Close()

reader := bufio.NewReader(file)

content, err := ioutil.ReadAll(reader)
if err != nil {
    panic(err)
}

str := string(content)
if strings.Contains(str, "Hello World") {
    fmt.Println("Found!")
}

Dalam kod ini, kami mula-mula membaca kandungan keseluruhan fail melalui fungsi ReadAll dan menyimpannya sebagai kepingan bait. Kami kemudian menukar kepingan bait kepada rentetan dan menggunakan fungsi Mengandungi untuk mencari subrentetan "Hello World". Jika ditemui, keluarkan "Dijumpai!", jika tidak, lakukan apa-apa.

Menggunakan pakej bufio dan fungsi yang sepadan, kami boleh membaca kandungan fail dan mengendalikannya dengan mudah. Bukan itu sahaja, pendekatan ini juga membantu kami mengendalikan fail besar kerana ia tidak membaca keseluruhan fail ke dalam ingatan sekaligus.

Atas ialah kandungan terperinci Baca kandungan fail menggunakan fungsi bufio.NewReader dalam dokumentasi bahasa 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