Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membaca Kandungan Fail Teks dalam Go?

Bagaimana untuk Membaca Kandungan Fail Teks dalam Go?

Barbara Streisand
Lepaskan: 2024-11-13 15:13:02
asal
492 orang telah melayarinya

How to Read the Contents of a Text File in Go?

Cara Membaca Fail Teks dalam Go

Apabila bekerja dengan fail teks dalam Go, adalah penting untuk memahami cara membaca kandungannya. Walau bagaimanapun, soalan yang anda kemukakan, "Bagaimana hendak membaca fail teks? [pendua]," menunjukkan bahawa tugasan ini mungkin lebih kompleks daripada yang kelihatan.

Kod yang anda berikan:

package main

import (
    "fmt"
    "os"
    "log"
)

func main() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }

    fmt.Print(file)
}
Salin selepas log masuk

berjaya membaca fail, tetapi output hanyalah nilai penunjuk bagi deskriptor fail (*os.File). Untuk benar-benar mendapatkan kandungan fail, anda perlu menggunakan salah satu daripada beberapa teknik:

Membaca Kandungan Fail ke dalam Memori

Untuk fail kecil, pendekatan paling mudah ialah menggunakan io/ioutil.ReadAll untuk memuatkan keseluruhan fail ke dalam ingatan.

func main() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    b, err := io.ReadAll(file)
    fmt.Print(b)
}
Salin selepas log masuk

Membaca dalam Potongan

Untuk fail yang lebih besar, baca dalam ketulan boleh menjadi lebih cekap ingatan.

func main() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    buf := make([]byte, 32*1024)

    for {
        n, err := file.Read(buf)

        if n > 0 {
            fmt.Print(buf[:n])
        }

        if err == io.EOF {
            break
        }
        if err != nil {
            log.Printf("read %d bytes: %v", n, err)
            break
        }
    }
}
Salin selepas log masuk

Menggunakan Pengimbas

Akhir sekali, anda boleh menggunakan pakej bufio untuk mencipta Pengimbas yang membaca fail dalam token, memajukan berdasarkan pemisah (secara lalai, baris baharu).

func main() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    scanner := bufio.NewScanner(file)

    for scanner.Scan() {
        fmt.Println(scanner.Text())
        fmt.Println(scanner.Bytes())
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membaca Kandungan Fail Teks dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan