Lecture et écriture de données
Enregistrez les données et les chaînes sur le disque.
Lecture et écriture de données est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.
Lire et écrire des données
Le type Data de Foundation contient des octets bruts, et String comme Data savent lire depuis des URL de fichiers et y écrire.
Écrire une chaîne
write(to:atomically:encoding:) enregistre une chaîne dans une URL de fichier. Les écritures atomiques utilisent un fichier temporaire pour éviter la corruption.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
try? "Hello, file!".write(to: url, atomically: true, encoding: .utf8)
print("Wrote string to disk")Lire une chaîne
String(contentsOf:encoding:) charge à nouveau le fichier en mémoire sous forme de texte.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
print(text)
}Utiliser des données
Data(contentsOf:) lit n’importe quel fichier sous forme d’octets bruts, ce qui convient aux images, aux archives et aux formats binaires.
import Foundation
let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let data = try? Data(contentsOf: url) {
print("Byte count: \(data.count)")
}Écrire des données
data.write(to:) enregistre des octets dans un fichier. Combinez-le avec un encodage pour stocker du texte ou toute charge utile sérialisée.
import Foundation
let bytes = Data([0x48, 0x69])
let url = URL(fileURLWithPath: "/tmp/bytes.bin")
try? bytes.write(to: url)
print("Wrote raw data")Convertir des données en chaîne
Convertissez des Data en texte avec String(data:encoding:) lorsque vous connaissez l’encodage des octets.
import Foundation
let data = Data([0x48, 0x69])
if let s = String(data: data, encoding: .utf8) {
print(s)
}Encoder du JSON
Utilisez JSONEncoder pour transformer une valeur Codable en Data prête à être écrite sur le disque.
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")Décoder du JSON
Relisez les données, puis décodez-les avec JSONDecoder dans votre type de modèle.
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)
}Écritures atomiques
L’option atomically: true écrit dans un fichier temporaire, puis le renomme ; les lecteurs ne voient donc jamais un fichier partiellement écrit.
import Foundation
let url = URL(fileURLWithPath: "/tmp/safe.txt")
try? "important".write(to: url, atomically: true, encoding: .utf8)
print("Atomic write done")Gérer les erreurs
Les opérations sur les fichiers peuvent lever des erreurs. Utilisez do/catch pour réagir aux fichiers manquants ou aux problèmes d’autorisation plutôt que de provoquer un plantage.
import Foundation
let url = URL(fileURLWithPath: "/does/not/exist.txt")
do {
_ = try String(contentsOf: url, encoding: .utf8)
} catch {
print("Read failed: \(error.localizedDescription)")
}Ajouter ou remplacer
La méthode de base write(to:) remplace le contenu. Pour ajouter des données, ouvrez un FileHandle et positionnez-vous à la fin avant l’écriture.
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")Vérification rapide
Que garantit atomically: true lors d’une écriture ?
Récapitulatif
Vous avez lu et écrit du texte avec String(contentsOf:) et write(to:atomically:encoding:), manipulé des octets bruts avec Data, enregistré des modèles via JSONEncoder/Decoder, utilisé des écritures atomiques, intercepté les erreurs et ajouté des données avec FileHandle. Ensuite : gérer les répertoires.
Apprends Swift avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 122
- Leçons
- 409
Questions Fréquemment Posées
La leçon « Lecture et écriture de données » est-elle gratuite ?
Oui — le texte complet de « Lecture et écriture de données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Lecture et écriture de données » ?
Enregistrez les données et les chaînes sur le disque. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Lecture et écriture de données » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- URL et chemins de fichiers
- Lecture et écriture de données
- Gestion des répertoires
- Répertoires de bac à sable de l’application