Dosya ve Geçici Dosya Yazma
WriteFile, OpenFile bayrakları ve geçici dosyalar
Dosya ve Geçici Dosya Yazma, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. 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.WriteFile
os.WriteFile, bir bayt dilimini bir dosyaya atomik olarak yazar (dosyayı kısaltır, ardından yazar). Küçük dosyalar için basittir.
err := os.WriteFile("output.txt", []byte("hello"), 0644)
if err != nil { log.Fatal(err) }os.Create ve defer Close
os.Create, bir dosya oluşturur veya dosyayı kısaltır ve bir *os.File döndürür. Her zaman defer ile kapatın.
f, err := os.Create("output.txt")
if err != nil { return err }
defer f.Close()
f.WriteString("hello\n")Bayraklarla os.OpenFile
Ekleme, yoksa oluşturma veya özel oluşturma kipleri için os.OpenFile kullanın:
f, err := os.OpenFile("log.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)bufio.Writer
Küçük yazma işlemlerini daha büyük sistem çağrıları hâlinde toplamak için bir dosyayı bufio.NewWriter ile sarın. Arabelleğe alınmış verileri yazmak için kapatmadan önce Flush() çağrısını yapın.
w := bufio.NewWriter(f)
fmt.Fprintf(w, "line %d\n", i)
w.Flush()fmt.Fprintf
Dosyalar da dâhil olmak üzere herhangi bir io.Writer kaynağına biçimlendirilmiş metin yazın:
fmt.Fprintf(f, "name: %s, age: %d\n", name, age)Atomik dosya yazma deseni
Önce geçici bir dosyaya yazın, ardından hedef dosyanın adını değiştirin. POSIX'te Rename atomiktir; okuyucular hiçbir zaman kısmi yazma görmez, yalnızca eski veya yeni dosyayı görür.
tmp, _ := os.CreateTemp("", "output-*.txt")
tmp.Write(data)
tmp.Close()
os.Rename(tmp.Name(), "output.txt")os.CreateTemp
os.CreateTemp(dir, pattern), dir içinde pattern ile eşleşen benzersiz ada sahip geçici bir dosya oluşturur. Açık dosyayı döndürür. Dosyanın silinmesinden çağıran sorumludur.
f, err := os.CreateTemp("", "upload-*.json")
defer os.Remove(f.Name()) // cleanupos.MkdirTemp
os.MkdirTemp, geçici bir dizin oluşturur. Sınama düzenekleri veya birden fazla geçici dosya oluşturan işleme işlem hatları için kullanın.
dir, err := os.MkdirTemp("", "batch-*")
defer os.RemoveAll(dir)Dosya izinleri
Oluşturma tarzı işlevlerin son bağımsız değişkeni olarak Unix izin bitlerini (örneğin, sahibine rw, gruba r ve diğerlerine r izni veren 0644) geçirin. İşlem maskesi bu izinleri daha da kısıtlayabilir.
Yazma hatalarını denetleme
f.WriteString ve fmt.Fprintf hata döndürebilir (diskin dolu olması, izinler). Hataları denetleyin veya ilk hatayı kaydeden bir yazıcı sarmalayıcısıyla hataları biriktirin.
sync.File eşzamanlı kullanım için güvenli değildir
Aynı *os.File dosyasına eşzamanlı olarak yazan birden fazla eş yordamın yazma işlemleri birbirine karışabilir. Bir karşılıklı dışlama kilidi veya tek bir özel yazıcı eş yordamı kullanın.
Hızlı kontrol
Geçici dosyaya yazıp ardından dosyanın adını değiştirme deseni neden atomik kabul edilir?
Özet: Dosyalara yazma
Temel noktalar:
- os.WriteFile: basit üzerine yazma; bufio.Writer: küçük yazma işlemlerini toplar
- Atomik yazma: geçici dosya + yeniden adlandırma
- Geçici kaynaklar için os.CreateTemp / os.MkdirTemp kullanın; temizliği her zaman defer ile planlayın
- Yazma hatalarını denetleyin; eşzamanlı yazma işlemlerini eş güdümleyin
Yapay zeka eğitmeniyle Go öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“Dosya ve Geçici Dosya Yazma” dersi ücretsiz mi?
Evet — “Dosya ve Geçici Dosya Yazma” 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.
“Dosya ve Geçici Dosya Yazma” dersinde ne öğreneceğim?
WriteFile, OpenFile bayrakları ve geçici dosyalar 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 2. dersidir.
“Dosya ve Geçici Dosya Yazma” 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
- os ve bufio ile Dosya Okuma
- Dosya ve Geçici Dosya Yazma
- JSON Kodlama ve Kod Çözme
- JSON ve CSV Akışı