0Pricing
Swift Academy · درس

قراءة البيانات وكتابتها

احفظ البيانات والسلاسل النصية على القرص.

قراءة البيانات وكتابتها درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

قراءة البيانات وكتابتها

يحتفظ نوع Data في Foundation بالبايتات الخام، كما يعرف كل من String وData كيفية القراءة من عناوين URL للملفات والكتابة إليها.

كتابة String

تحفظ write(to:atomically:encoding:) سلسلة نصية في عنوان URL لملف. وتستخدم عمليات الكتابة الذرية ملفًا مؤقتًا لتجنب التلف.

import Foundation

let url = URL(fileURLWithPath: "/tmp/hello.txt")
try? "Hello, file!".write(to: url, atomically: true, encoding: .utf8)
print("Wrote string to disk")

قراءة String

تحمّل String(contentsOf:encoding:) الملف مجددًا إلى الذاكرة على هيئة نص.

import Foundation

let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
    print(text)
}

العمل مع Data

تقرأ Data(contentsOf:) أي ملف على هيئة بايتات خام، وهو مناسب للصور أو الأرشيفات أو التنسيقات الثنائية.

import Foundation

let url = URL(fileURLWithPath: "/tmp/hello.txt")
if let data = try? Data(contentsOf: url) {
    print("Byte count: \(data.count)")
}

كتابة Data

تحفظ data.write(to:) البايتات في ملف. ادمجوها مع الترميز لتخزين نص أو أي حمولة متسلسلة.

import Foundation

let bytes = Data([0x48, 0x69])
let url = URL(fileURLWithPath: "/tmp/bytes.bin")
try? bytes.write(to: url)
print("Wrote raw data")

تحويل Data إلى String

حوّلوا Data إلى نص باستخدام String(data:encoding:) عندما يكون ترميز البايتات معروفًا لديكم.

import Foundation

let data = Data([0x48, 0x69])
if let s = String(data: data, encoding: .utf8) {
    print(s)
}

ترميز JSON

استخدموا JSONEncoder لتحويل قيمة من نوع Codable إلى Data جاهزة للكتابة على القرص.

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

اقرؤوا البيانات مجددًا وفكّوا ترميزها باستخدام JSONDecoder لتحويلها إلى نوع النموذج الخاص بكم.

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)
}

الكتابة الذرية

يكتب الخيار atomically: true في ملف مؤقت ثم يعيد تسميته، ولذلك لا يرى القرّاء ملفًا تمت كتابته جزئيًا.

import Foundation

let url = URL(fileURLWithPath: "/tmp/safe.txt")
try? "important".write(to: url, atomically: true, encoding: .utf8)
print("Atomic write done")

معالجة الأخطاء

تطلق عمليات الملفات أخطاء. استخدموا do/catch للتعامل مع الملفات المفقودة أو مشكلات الصلاحيات بدلًا من حدوث انهيار.

import Foundation

let url = URL(fileURLWithPath: "/does/not/exist.txt")
do {
    _ = try String(contentsOf: url, encoding: .utf8)
} catch {
    print("Read failed: \(error.localizedDescription)")
}

الإلحاق مقارنةً بالاستبدال

تستبدل write(to:) الأساسية محتوى الملف. وللإلحاق، افتحوا FileHandle وانتقلوا إلى النهاية قبل الكتابة.

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")

تحقق سريع

ما الذي يضمنه الخيار atomically: true عند الكتابة؟

مراجعة

قرأتم النصوص وكتبتموها باستخدام String(contentsOf:) وwrite(to:atomically:encoding:)، وتعاملتم مع البايتات الخام باستخدام Data، وحفظتم النماذج عبر JSONEncoder/Decoder، واستخدمتم الكتابة الذرية، والتقطتم الأخطاء، وألحقتم البيانات باستخدام FileHandle. التالي: إدارة الأدلة.

الأسئلة الشائعة

هل درس «قراءة البيانات وكتابتها» مجاني؟

نعم — نص درس «قراءة البيانات وكتابتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «قراءة البيانات وكتابتها»؟

احفظ البيانات والسلاسل النصية على القرص. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «قراءة البيانات وكتابتها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عناوين URL ومسارات الملفات
  2. قراءة البيانات وكتابتها
  3. إدارة الأدلة
  4. أدلة حاوية التطبيق
← العودة إلى Swift Academy