Membaca Rentetan daripada Fail Teks dalam Go
Apabila bekerja dengan fail teks dalam Go, mungkin wajar untuk membaca satu baris teks ke dalam rentetan. Walaupun perpustakaan standard menyediakan fungsi peringkat rendah yang mengembalikan tatasusunan bait, cara yang lebih mudah ialah menggunakan fungsi khusus yang mengendalikan tugas ini secara langsung.
Penyelesaian
Yang berikut kod menunjukkan cara membaca satu baris daripada fail teks ke dalam rentetan:
import ( "bufio" "fmt" "os" ) // ReadLine reads a single line from a file. func ReadLine(r *bufio.Reader) (string, error) { var ( isPrefix bool = true err error line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.ReadLine() ln = append(ln, line...) } return string(ln), err } func main() { fi := `<path-to-your-file>` f, err := os.Open(fi) if err != nil { fmt.Println("error opening file= ", err) os.Exit(1) } defer f.Close() r := bufio.NewReader(f) s, e := ReadLine(r) for e == nil { fmt.Println(s) s, e = ReadLine(r) } }
Kod ini membuka fail yang ditentukan, memulakan pembaca buffer, dan memanggil fungsi ReadLine untuk membaca setiap baris daripada fail. Rentetan yang terhasil dicetak untuk stdout.
Penggunaan
Panggil fungsi ReadLine pada pembaca penimbal untuk mendapatkan kandungan satu baris sebagai rentetan. Fungsi ReadLine mengendalikan membaca berbilang baris jika aksara baris baharu tidak terdapat dalam input.
Pendekatan ini menghapuskan keperluan untuk mengendalikan tatasusunan bait dan menukarnya kepada rentetan secara manual, menyediakan cara yang mudah dan cekap untuk membaca berorientasikan baris fail teks.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Membaca Baris Tunggal daripada Fail Teks menjadi Rentetan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!