العمل مع نظام الملفات في Java: من الأساسيات إلى التقنيات المتقدمة
العمل مع نظام الملفات هو أحد المهام الأساسية في البرمجة. توفر Java للمطورين أدوات قوية ومرنة لإدارة الملفات والمجلدات. في هذه المقالة، سنشرح بالتفصيل كيفية العمل مع نظام الملفات في Java، باستخدام كل من الحزمة التقليدية java.io والحزمة الحديثة java.nio.file. ستتعلم كيفية إنشاء الملفات وقراءتها وكتابتها، وإدارة المجلدات، ومعالجة الاستثناءات.
أساسيات العمل مع الملفات في Java: فئة File
فئة java.io.File هي حجر الزاوية في العمل مع نظام الملفات في Java. وهي تمثل تمثيلاً مجرداً لمسار ملف أو مجلد. من المهم أن نفهم أن File لا يخزن محتوى الملف، بل يوفر فقط طرقاً للتحقق من الخصائص وتنفيذ العمليات.
لنستعرض العمليات الأساسية مع File:
import java.io.File;import java.io.IOException;
public class FileExample { public static void main(String[] args) { // إنشاء كائن File File file = new File("example.txt"); File directory = new File("myDirectory");
// التحقق من الوجود System.out.println("الملف موجود: " + file.exists()); System.out.println("المجلد موجود: " + directory.exists());
// إنشاء ملف جديد try { if (file.createNewFile()) { System.out.println("تم إنشاء الملف: " + file.getName()); } else { System.out.println("الملف موجود بالفعل"); } } catch (IOException e) { System.err.println("خطأ في إنشاء الملف: " + e.getMessage()); }
// إنشاء مجلد if (directory.mkdir()) { System.out.println("تم إنشاء المجلد: " + directory.getName()); }
// الحصول على معلومات عن الملف System.out.println("المسار المطلق: " + file.getAbsolutePath()); System.out.println("حجم الملف: " + file.length() + " بايت"); System.out.println("قابل للقراءة: " + file.canRead()); System.out.println("قابل للكتابة: " + file.canWrite());
// حذف الملف if (file.delete()) { System.out.println("تم حذف الملف"); } }}تسمح فئة File أيضاً بالعمل مع قوائم الملفات في المجلد:
File currentDir = new File(".");String[] contents = currentDir.list();for (String item : contents) { System.out.println(item);}قراءة وكتابة الملفات: تيارات الإدخال والإخراج
للعمل المباشر مع محتوى الملفات، تستخدم Java تيارات الإدخال والإخراج (I/O streams). الفئات الرئيسية للعمل مع الملفات النصية هي FileReader/FileWriter و BufferedReader/BufferedWriter.
قراءة الملف سطراً سطراً
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;
public class ReadFileExample { public static void main(String[] args) { String fileName = "input.txt"; try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.println("خطأ في قراءة الملف: " + e.getMessage()); } }}لاحظ استخدام بنية try-with-resources. فهي تغلق التيار تلقائياً، مما يمنع تسرب الموارد.
الكتابة في ملف
import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;
public class WriteFileExample { public static void main(String[] args) { String fil