Lettura e scrittura dei dati
Salvi dati e stringhe su disco.
Lettura e scrittura dei dati è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.
Lettura e scrittura dei dati
Il tipo Data di Foundation contiene byte grezzi, mentre String e Data sanno entrambi leggere dagli URL di file e scrivervi.
Scrittura di una stringa
write(to:atomically:encoding:) salva una stringa in un URL di file. Le scritture atomiche usano un file temporaneo per evitare la corruzione dei dati.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
try? "Hello, file!".write(to: url, atomically: true, encoding: .utf8)
print("Wrote string to disk")Lettura di una stringa
String(contentsOf:encoding:) carica nuovamente il file in memoria come testo.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
print(text)
}Utilizzo di Data
Data(contentsOf:) legge qualsiasi file come byte grezzi, una soluzione adatta per immagini, archivi o formati binari.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let data = try? Data(contentsOf: url) {
print("Byte count: \(data.count)")
}Scrittura di Data
data.write(to:) salva i byte in un file. Lo combini con la codifica per memorizzare testo o qualsiasi contenuto serializzato.
import Foundation
let bytes = Data([0x48, 0x69])
let url = URL(fileURLWithPath: "/tmp/bytes.bin")
try? bytes.write(to: url)
print("Wrote raw data")Conversione da Data a String
Converta Data in testo con String(data:encoding:) quando conosce la codifica dei byte.
import Foundation
let data = Data([0x48, 0x69])
if let s = String(data: data, encoding: .utf8) {
print(s)
}Codifica JSON
Usi JSONEncoder per trasformare un valore Codable in Data, pronto per essere scritto sul disco.
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")Decodifica JSON
Legga nuovamente i dati e li decodifichi con JSONDecoder nel tipo del proprio modello.
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)
}Scritture atomiche
L'opzione atomically: true scrive in un file temporaneo e poi lo rinomina, così i lettori non vedono mai un file scritto solo parzialmente.
import Foundation
let url = URL(fileURLWithPath: "/tmp/safe.txt")
try? "important".write(to: url, atomically: true, encoding: .utf8)
print("Atomic write done")Gestione degli errori
Le operazioni sui file possono generare errori. Usi do/catch per gestire file mancanti o problemi di autorizzazione invece di causare un arresto anomalo.
import Foundation
let url = URL(fileURLWithPath: "/does/not/exist.txt")
do {
_ = try String(contentsOf: url, encoding: .utf8)
} catch {
print("Read failed: \(error.localizedDescription)")
}Aggiunta e sovrascrittura
Il metodo di base write(to:) sovrascrive il contenuto. Per aggiungere dati, apra un FileHandle e si sposti alla fine prima di scrivere.
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")Verifica rapida
Che cosa garantisce atomically: true durante una scrittura?
Riepilogo
Ha letto e scritto testo con String(contentsOf:) e write(to:atomically:encoding:), gestito byte grezzi con Data, salvato modelli tramite JSONEncoder/Decoder, usato scritture atomiche, gestito gli errori e aggiunto dati con FileHandle. Prossimo argomento: gestione delle directory.
Impara Swift con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 122
- Lezioni
- 409
Domande Frequenti
La lezione «Lettura e scrittura dei dati» è gratuita?
Sì — il testo completo di «Lettura e scrittura dei dati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.
Cosa imparerò in «Lettura e scrittura dei dati»?
Salvi dati e stringhe su disco. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Swift Academy?
Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Lettura e scrittura dei dati»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Swift Academy?
Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- URL e percorsi dei file
- Lettura e scrittura dei dati
- Gestione delle directory
- Directory della sandbox dell’app