Membaca Fail dengan os dan bufio
Membuka, membaca baris dan menutup fail dengan selamat
Membaca Fail dengan os dan bufio ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
os.ReadFile
os.ReadFile (Go 1.16+) membaca seluruh fail ke dalam kepingan bait dalam satu panggilan. Cara ini mudah dan idiomatik untuk fail kecil.
data, err := os.ReadFile("config.json")
if err != nil { log.Fatal(err) }
fmt.Println(string(data))os.Open dan penutupan manual
Untuk kawalan yang lebih terperinci, buka fail dengan os.Open (baca sahaja) dan tutupnya dengan defer:
f, err := os.Open("data.txt")
if err != nil { return err }
defer f.Close()Membaca ke dalam penimbal
Baca sebahagian bait dengan f.Read(buf). Fungsi ini mengembalikan bilangan bait yang dibaca dan io.EOF apabila fail tamat.
buf := make([]byte, 1024)
n, err := f.Read(buf)
if err != nil && err != io.EOF { return err }
fmt.Println(string(buf[:n]))bufio.NewReader
Balut fail dalam bufio.Reader untuk menimbal bacaan dan mengurangkan panggilan sistem. Kaedahnya termasuk ReadString, ReadLine dan ReadByte.
reader := bufio.NewReader(f)
line, err := reader.ReadString('\n')Membaca baris demi baris dengan bufio.Scanner
bufio.NewScanner ialah cara idiomatik untuk membaca fail teks baris demi baris. Fungsi pemisahan lalai ialah ScanLines.
scanner := bufio.NewScanner(f)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil { return err }Penimbal pengimbas tersuai
Penimbal pengimbas lalai ialah 64 KiB. Untuk fail yang mempunyai baris sangat panjang, tingkatkan saiz penimbal dengan scanner.Buffer.
buf := make([]byte, 1024*1024)
scanner.Buffer(buf, len(buf))io.ReadAll
io.ReadAll membaca daripada mana-mana io.Reader sehingga EOF dan mengembalikan bait tersebut. Ini berguna untuk membaca daripada sambungan rangkaian, badan respons atau fail yang dibalut dalam pembaca.
data, err := io.ReadAll(f)Mengimbas perkataan dan bait
Gantikan fungsi pemisahan pengimbas untuk mengimbas perkataan (bufio.ScanWords) atau bait individu (bufio.ScanBytes).
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
fmt.Println(scanner.Text())
}Membaca teks berstruktur
Selepas membaca baris, gunakan strings.Fields atau strings.Split untuk menghuraikan lajur:
for scanner.Scan() {
fields := strings.Fields(scanner.Text())
// fields[0], fields[1], ...
}Kesilapan membaca fail
Sentiasa semak Err() pengimbas selepas gelung imbasan — fungsi ini mengembalikan kesilapan pertama selain EOF. Gelung yang tamat secara normal tanpa mengimbas sebarang baris mungkin masih telah mengalami kesilapan.
Membaca stdin bernama
Gunakan os.Stdin di mana-mana io.Reader diterima. Ini membolehkan alat CLI berfungsi dengan argumen fail dan masukan melalui paip.
scanner := bufio.NewScanner(os.Stdin)Semakan pantas
Jenis bufio manakah yang merupakan cara idiomatik untuk membaca fail teks baris demi baris dalam Go?
Ringkasan: Membaca Fail
Isi penting:
- os.ReadFile: seluruh fail kecil dalam satu panggilan
- bufio.Scanner: bacaan baris demi baris; semak Err() selepas gelung
- bufio.Reader: bacaan berpenimbal yang mengurangkan panggilan sistem
- io.ReadAll: baca mana-mana io.Reader hingga selesai
Pelajari Go dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Membaca Fail dengan os dan bufio” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Membaca Fail dengan os dan bufio”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Membaca Fail dengan os dan bufio”?
Membuka, membaca baris dan menutup fail dengan selamat Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Go Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Membaca Fail dengan os dan bufio” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Membaca Fail dengan os dan bufio
- Menulis Fail dan Fail Sementara
- Pengekodan dan Penyahkodan JSON
- Penstriman JSON dan CSV