0Pricing
Go Academy · Pelajaran

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

  1. Membaca File dengan os dan bufio
  2. Menulis File dan File Sementara
  3. Pengodean dan Penguraian JSON
  4. Streaming JSON dan CSV
← Kembali ke Go Academy