0Pricing
Go Academy · Ders

os ve bufio ile Dosya Okuma

Dosyaları güvenle açma, satırları okuma ve kapatma

os ve bufio ile Dosya Okuma, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

os.ReadFile

os.ReadFile (Go 1.16 ve sonrası), tek çağrıda bir dosyanın tamamını bir bayt dilimine okur. Küçük dosyalar için basit ve deyimsel bir çözümdür.

data, err := os.ReadFile("config.json")
if err != nil { log.Fatal(err) }
fmt.Println(string(data))

os.Open ve manuel Close

Daha fazla denetim için os.Open ile bir dosyayı açın (salt okunur) ve defer ile kapatın:

f, err := os.Open("data.txt")
if err != nil { return err }
defer f.Close()

Bir arabelleğe okuma

f.Read(buf) ile bir bayt parçası okuyun. Bu çağrı, okunan bayt sayısını ve dosyanın sonuna gelindiğinde io.EOF değerini döndürür.

buf := make([]byte, 1024)
n, err := f.Read(buf)
if err != nil && err != io.EOF { return err }
fmt.Println(string(buf[:n]))

bufio.NewReader

Okuma işlemlerini arabelleğe almak ve sistem çağrılarını azaltmak için bir dosyayı bufio.Reader ile sarın. Yöntemler arasında ReadString, ReadLine ve ReadByte bulunur.

reader := bufio.NewReader(f)
line, err := reader.ReadString('\n')

bufio.Scanner ile satır satır okuma

bufio.NewScanner, bir metin dosyasını satır satır okumak için deyimsel yoldur. Varsayılan bölme işlevi ScanLines'tır.

scanner := bufio.NewScanner(f)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil { return err }

Özel tarayıcı arabelleği

Varsayılan tarayıcı arabelleği 64 KiB'tır. Çok uzun satırlara sahip dosyalar için scanner.Buffer ile arabelleği büyütün.

buf := make([]byte, 1024*1024)
scanner.Buffer(buf, len(buf))

io.ReadAll

io.ReadAll, herhangi bir io.Reader kaynağından EOF değerine ulaşana kadar okur ve baytları döndürür. Ağ bağlantılarından, yanıt gövdelerinden veya okuyucularla sarılmış dosyalardan okuma yapmak için kullanışlıdır.

data, err := io.ReadAll(f)

Sözcükleri ve baytları tarama

Sözcükleri (bufio.ScanWords) veya tek tek baytları (bufio.ScanBytes) taramak için tarayıcının bölme işlevini değiştirin.

scanner.Split(bufio.ScanWords)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

Yapılandırılmış metni okuma

Satırları okuduktan sonra sütunları ayrıştırmak için strings.Fields veya strings.Split kullanın:

for scanner.Scan() {
    fields := strings.Fields(scanner.Text())
    // fields[0], fields[1], ...
}

Dosya okuma hataları

Tarama döngüsünden sonra tarayıcının Err() değerini her zaman denetleyin; bu değer, EOF dışındaki ilk hatayı döndürür. Hiç satır taramadan normal şekilde tamamlanan bir döngüde bile bir hata oluşmuş olabilir.

Adlandırılmış stdin'i okuma

Bir io.Reader'ın kabul edildiği her yerde os.Stdin kullanın. Bu sayede CLI araçları hem dosya bağımsız değişkenleriyle hem de yönlendirilmiş girdilerle çalışabilir.

scanner := bufio.NewScanner(os.Stdin)

Hızlı kontrol

Go'da bir metin dosyasını satır satır okumak için deyimsel yol olan bufio türü hangisidir?

Özet: Dosyaları okuma

Temel noktalar:

  • os.ReadFile: küçük bir dosyanın tamamını tek çağrıda okur
  • bufio.Scanner: satır satır okuma; döngüden sonra Err() değerini denetleyin
  • bufio.Reader: sistem çağrılarını azaltan arabelleğe alınmış okumalar
  • io.ReadAll: herhangi bir io.Reader kaynağını tamamlanana kadar okur

Sıkça Sorulan Sorular

“os ve bufio ile Dosya Okuma” dersi ücretsiz mi?

Evet — “os ve bufio ile Dosya Okuma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“os ve bufio ile Dosya Okuma” dersinde ne öğreneceğim?

Dosyaları güvenle açma, satırları okuma ve kapatma Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“os ve bufio ile Dosya Okuma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. os ve bufio ile Dosya Okuma
  2. Dosya ve Geçici Dosya Yazma
  3. JSON Kodlama ve Kod Çözme
  4. JSON ve CSV Akışı
← Go Academy Sayfasına Dön