Membaca File dengan os dan bufio
Membuka, membaca baris, dan menutup file dengan aman
Membaca File dengan os dan bufio adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
os.ReadFile
os.ReadFile (Go 1.16+) membaca seluruh berkas menjadi potongan byte dalam satu pemanggilan. Cara ini sederhana dan idiomatis untuk berkas kecil.
data, err := os.ReadFile("config.json")
if err != nil { log.Fatal(err) }
fmt.Println(string(data))os.Open dan penutupan manual
Untuk kendali lebih besar, buka berkas dengan os.Open (hanya-baca) dan tutup menggunakan defer:
f, err := os.Open("data.txt")
if err != nil { return err }
defer f.Close()Membaca ke dalam penyangga
Baca potongan byte dengan f.Read(buf). Fungsi ini mengembalikan jumlah byte yang dibaca dan io.EOF ketika berkas berakhir.
buf := make([]byte, 1024)
n, err := f.Read(buf)
if err != nil && err != io.EOF { return err }
fmt.Println(string(buf[:n]))bufio.NewReader
Bungkus berkas dengan bufio.Reader untuk menyangga pembacaan dan mengurangi panggilan sistem. Metodenya mencakup ReadString, ReadLine, dan ReadByte.
reader := bufio.NewReader(f)
line, err := reader.ReadString('\n')Membaca baris demi baris dengan bufio.Scanner
bufio.NewScanner adalah cara idiomatis untuk membaca berkas teks baris demi baris. Fungsi pemisah bawaannya adalah ScanLines.
scanner := bufio.NewScanner(f)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil { return err }Penyangga pemindai khusus
Penyangga pemindai bawaan berukuran 64 KiB. Untuk berkas dengan baris yang sangat panjang, tingkatkan ukuran penyangga dengan scanner.Buffer.
buf := make([]byte, 1024*1024)
scanner.Buffer(buf, len(buf))io.ReadAll
io.ReadAll membaca dari io.Reader apa pun hingga EOF dan mengembalikan byte. Ini berguna untuk membaca dari koneksi jaringan, isi respons, atau berkas yang dibungkus dalam pembaca.
data, err := io.ReadAll(f)Memindai kata dan byte
Ganti fungsi pemisah pemindai untuk memindai kata (bufio.ScanWords) atau byte satu per satu (bufio.ScanBytes).
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
fmt.Println(scanner.Text())
}Membaca teks terstruktur
Setelah membaca baris, gunakan strings.Fields atau strings.Split untuk mengurai kolom:
for scanner.Scan() {
fields := strings.Fields(scanner.Text())
// fields[0], fields[1], ...
}Kesalahan pembacaan berkas
Selalu periksa Err() milik pemindai setelah perulangan pemindaian — fungsi ini mengembalikan kesalahan pertama selain EOF. Perulangan yang selesai secara normal tanpa memindai baris apa pun tetap mungkin mengalami kesalahan.
Membaca stdin yang dinamai
Gunakan os.Stdin di mana pun io.Reader diterima. Dengan demikian, alat CLI dapat bekerja dengan argumen berkas maupun masukan yang dialirkan melalui pipa.
scanner := bufio.NewScanner(os.Stdin)Pemeriksaan Singkat
Tipe bufio mana yang merupakan cara idiomatis untuk membaca berkas teks baris demi baris di Go?
Ringkasan: Membaca Berkas
Poin penting:
- os.ReadFile: membaca seluruh berkas kecil dalam satu pemanggilan
- bufio.Scanner: membaca baris demi baris; periksa Err() setelah perulangan
- bufio.Reader: pembacaan dengan penyangga yang mengurangi panggilan sistem
- io.ReadAll: membaca io.Reader apa pun hingga selesai
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membaca File dengan os dan bufio” gratis?
Ya — teks lengkap “Membaca File dengan os dan bufio” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membaca File dengan os dan bufio”?
Membuka, membaca baris, dan menutup file dengan aman Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Membaca File dengan os dan bufio” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca File dengan os dan bufio
- Menulis File dan File Sementara
- Pengodean dan Penguraian JSON
- Streaming JSON dan CSV