العمل مع نظام الملفات في Kotlin: دليل شامل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في العمل مع نظام الملفات في Kotlin



العمل مع نظام الملفات هو أحد المهام الأساسية التي يواجهها كل مطور. بغض النظر عما إذا كنت تكتب تطبيق وحدة تحكم، أو خدمة ويب، أو تطبيق جوال لنظام Android، فإن القدرة على قراءة وكتابة وإدارة الملفات هي مهارة إلزامية. في هذه المقالة، سنشرح بالتفصيل كيفية العمل مع نظام الملفات في Kotlin، باستخدام كل من الأدوات القياسية في Java والإمكانيات الحديثة للغة.



Kotlin هي لغة برمجة حديثة وموجزة وآمنة ومتوافقة تمامًا مع Java. وهذا يعني أنه يمكنك استخدام جميع إمكانيات java.io و java.nio.file، ولكن مع كتابة كود أقصر وأكثر تعبيرًا. المقالة موجهة للمطورين المبتدئين الذين هم على دراية بالفعل بأساسيات بناء جملة Kotlin.



الفئات والطرق الأساسية للعمل مع الملفات



قبل الانتقال إلى التطبيق العملي، دعنا نتعرف على الفئات الرئيسية التي ستحتاجها للعمل مع نظام الملفات في Kotlin:



  • java.io.File — الفئة الأساسية لتمثيل الملفات والمجلدات.
  • java.nio.file.Path — واجهة حديثة للعمل مع المسارات.
  • java.nio.file.Files — فئة أدوات تحتوي على العديد من الطرق الثابتة.
  • java.io.BufferedReader و java.io.BufferedWriter — للقراءة والكتابة سطرًا بسطر.


في Kotlin، هناك أيضًا امتدادات مريحة خاصة بها للفئة File، مما يجعل الكود أبسط. على سبيل المثال، الدوال readText() و writeText() و appendText() وغيرها.



إنشاء الملفات والمجلدات



لنبدأ بأبسط شيء وهو إنشاء ملف. في Kotlin، يتم ذلك في سطر واحد:



import java.io.File

fun main() { val file = File("example.txt") file.createNewFile() // ينشئ الملف إذا لم يكن موجودًا println("تم إنشاء الملف: ${file.absolutePath}")}


لاحظ: الدالة createNewFile() ترجع Boolean — true إذا تم إنشاء الملف، و false إذا كان موجودًا بالفعل. لإنشاء المجلدات، يتم استخدام الطريقة mkdir() أو mkdirs() (تنشئ جميع المجلدات الأصلية المفقودة):



fun main() {    val dir = File("myFolder/subFolder")    if (dir.mkdirs()) {        println("تم إنشاء المجلد: ${dir.absolutePath}")    } else {        println("فشل إنشاء المجلد")    }}


قراءة البيانات من ملف



هناك عدة طرق لقراءة ملف في Kotlin. دعنا نستعرض الأكثر شيوعًا.



قراءة الملف بأكمله



إذا كان الملف صغيرًا، فمن الملائم قراءة محتواه في سلسلة نصية واحدة أو قائمة من الأسطر:



fun main() {    val file = File("readme.txt")        // قراءة النص بأكمله في سلسلة نصية واحدة    val text: String = file.readText()    println("محتوى الملف:$text")        // القراءة سطرًا بسطر    val lines: List<String> = file.readLines()    lines.forEach { println("السطر: $it") }}


الدالة readText() ترجع سلسلة نصية، بينما readLines() ترجع قائمة من الأسطر. كلا الدالتين تغلقان الملف تلقائيًا بعد القراءة، وهو أمر آمن ومريح.



القراءة سطرًا بسطر مع التخزين المؤقت



بالنسبة للملفات الكبيرة، من الأفضل استخدام BufferedReader لتجنب تحميل الملف بأكمله في الذاكرة:



fun main() {    val file = File("large_file.txt")    file.bufferedReader().use { reader ->        var line: String?        while (reader.readLine().also { line = it } != null) {            println("نقرأ: $line")        }    }}


التركيب .use { } يضمن إغلاق المورد بعد الانتهاء من تنفيذ الكتلة، حتى في حالة حدوث استثناء.

المدونات

توصيات الكتب