Verileri Okuma ve Yazma
Verileri ve dizeleri diskte kalıcı hâle getirin.
Verileri Okuma ve Yazma, CoddyKit'te ücretsiz bir Swift 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, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Verileri Okuma ve Yazma
Foundation'ın Data türü ham baytları tutar; ayrıca String ve Data dosya URL'lerinden okuma ve bu URL'lere yazma işlemlerini destekler.
Dize Yazma
write(to:atomically:encoding:), bir dizeyi dosya URL'sine kaydeder. Atomik yazma, bozulmayı önlemek için geçici bir dosya kullanır.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
try? "Hello, file!".write(to: url, atomically: true, encoding: .utf8)
print("Wrote string to disk")Dize Okuma
String(contentsOf:encoding:), dosyayı metin olarak yeniden belleğe yükler.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
print(text)
}Data ile Çalışma
Data(contentsOf:), herhangi bir dosyayı ham baytlar olarak okur; görüntüler, arşivler veya ikili biçimler için uygundur.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let data = try? Data(contentsOf: url) {
print("Byte count: \(data.count)")
}Data Yazma
data.write(to:), baytları bir dosyada kalıcı hâle getirir. Metin veya serileştirilmiş herhangi bir yükü depolamak için bunu kodlamayla birlikte kullanın.
import Foundation
let bytes = Data([0x48, 0x69])
let url = URL(fileURLWithPath: "/tmp/bytes.bin")
try? bytes.write(to: url)
print("Wrote raw data")Data'dan Dizeye
Bayt kodlamasını bildiğiniz durumlarda String(data:encoding:) ile Data değerini metne dönüştürün.
import Foundation
let data = Data([0x48, 0x69])
if let s = String(data: data, encoding: .utf8) {
print(s)
}JSON Kodlama
JSONEncoder kullanarak bir Codable değerini diske yazılmaya hazır Data değerine dönüştürün.
import Foundation
struct Note: Codable { let text: String }
let data = try? JSONEncoder().encode(Note(text: "hi"))
let url = URL(fileURLWithPath: "/tmp/note.json")
try? data?.write(to: url)
print("Saved JSON")JSON Ayrıştırma
Veriyi yeniden okuyun ve model türünüze dönüştürmek için JSONDecoder ile ayrıştırın.
import Foundation
struct Note: Codable { let text: String }
let url = URL(fileURLWithPath: "/tmp/note.json")
if let data = try? Data(contentsOf: url),
let note = try? JSONDecoder().decode(Note.self, from: data) {
print(note.text)
}Atomik Yazma
atomically: true seçeneği önce geçici bir dosyaya yazar, ardından dosyanın adını değiştirir; böylece okuyucular hiçbir zaman yarım yazılmış bir dosya görmez.
import Foundation
let url = URL(fileURLWithPath: "/tmp/safe.txt")
try? "important".write(to: url, atomically: true, encoding: .utf8)
print("Atomic write done")Hataları Ele Alma
Dosya işlemleri hata fırlatır. Uygulamanın çökmesi yerine eksik dosyalara veya izin sorunlarına tepki vermek için do/catch kullanın.
import Foundation
let url = URL(fileURLWithPath: "/does/not/exist.txt")
do {
_ = try String(contentsOf: url, encoding: .utf8)
} catch {
print("Read failed: \(error.localizedDescription)")
}Ekleme ve Üzerine Yazma
Temel write(to:) işlemi mevcut içeriğin üzerine yazar. Ekleme yapmak için bir FileHandle açın, yazmadan önce dosyanın sonuna gidin.
import Foundation
let url = URL(fileURLWithPath: "/tmp/log.txt")
if let handle = try? FileHandle(forWritingTo: url) {
handle.seekToEndOfFile()
handle.write(Data("line\n".utf8))
try? handle.close()
}
print("Appended")Kısa Kontrol
Yazma sırasında atomically: true neyi garanti eder?
Özet
String(contentsOf:) ve write(to:atomically:encoding:) ile metin okudunuz ve yazdınız, ham baytları Data ile ele aldınız, modelleri JSONEncoder/Decoder aracılığıyla kalıcı hâle getirdiniz, atomik yazmaları kullandınız, hataları yakaladınız ve FileHandle ile ekleme yaptınız. Sırada dizinleri yönetmek var.
Sıkça Sorulan Sorular
“Verileri Okuma ve Yazma” dersi ücretsiz mi?
Evet — “Verileri Okuma ve 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 Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Verileri Okuma ve Yazma” dersinde ne öğreneceğim?
Verileri ve dizeleri diskte kalıcı hâle getirin. Swift 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.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift 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.
“Verileri Okuma ve 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 Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift 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
- URL'ler ve Dosya Yolları
- Verileri Okuma ve Yazma
- Dizinleri Yönetme
- Uygulama Korumalı Alanı Dizinleri