CodeGym /مدونة جافا /Random-AR /Java.io.فئة الملف
John Squirrels
مستوى
San Francisco

Java.io.فئة الملف

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

ما هي فئة ملف جافا

يتم تعريف فئة الملف في حزمة java.io ولا تعمل مباشرة مع التدفقات. فئة Java File هي إدارة المعلومات حول الملفات والدلائل. كما تعلم، على مستوى نظام التشغيل، تعد الملفات والأدلة كائنات مختلفة. ولكن في Java، يتم وصفهما بنفس فئة الملف . قد تتساءل لماذا لا تستخدم السلاسل فقط للإشارة إلى الملفات؟ بادئ ذي بدء، لأن الوصول إلى الملفات يختلف في أنظمة التشغيل المختلفة.

منشئو فئة الملف

اعتمادًا على ما إذا كان كائن Java.io.File Class يجب أن يمثل ملفًا أو دليلاً، يمكننا استخدام أحد المنشئين لإنشاء الكائن: File(String pathname) في هذه الحالة يقوم المنشئ بإنشاء مثيل ملف جديد عن طريق تحويل اسم المسار المحدد سلسلة في اسم مسار مجردة. File(String myPath, String myString) يقوم هذا المنشئ بإنشاء مثيل ملف جديد من سلسلة اسم مسار myPath وسلسلة اسم مسار myString. يقوم الملف (أصل الملف، اسم السلسلة) بإنشاء مثيل ملف جديد من اسم مسار مجرد للملف وسلسلة اسم مسار. يقوم مُنشئ الملف (URI uri) في هذه الحالة بإنشاء مثيل ملف جديد عن طريق تحويل الملف المحدد: URI إلى اسم مسار مجرد. URI عبارة عن فئة Java تمثل مرجع معرف الموارد الموحد (URI). فيما يلي مثال لمنشئات فئة Java.io.File المختلفة :
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

طرق فئة الملف

تحتوي فئة Java File على عدد من الأساليب التي تسمح لك بمعالجة الملفات والأدلة. دعونا نفكر في بعضها:
  • ينشئ boolean createNewFile() ملفًا جديدًا في المسار الذي تم تمريره إلى المُنشئ. يُرجع صحيحًا إذا نجح، وإلا فهو خطأ

  • حذف منطقي () يحذف الدليل أو الملف في المسار الذي تم تمريره إلى المُنشئ. يعود صحيحًا عند الحذف الناجح

  • يتحقق boolean () من وجود ملف أو دليل في المسار المحدد في المُنشئ. إذا كان الملف أو الدليل موجودًا، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ

  • تقوم String getAbsolutePath() بإرجاع المسار المطلق للمسار الذي تم تمريره إلى مُنشئ الكائن

  • تقوم String getName() بإرجاع الاسم المختصر لملف أو دليل

  • تقوم String getParent() بإرجاع اسم الدليل الأصلي

  • boolean isDirectory() يُرجع صحيحًا إذا كان المسار المحدد يحتوي على دليل

  • boolean isFile() يُرجع صحيحًا إذا كان هناك ملف في المسار المحدد

  • boolean isHidden() يُرجع صحيحًا إذا كان الدليل أو الملف مخفيًا

  • long length() تُرجع حجم الملف بالبايت

  • ترجع الدالة long lastModified() ‎ الوقت الذي تم فيه آخر تعديل على ملف أو دليل. تمثل القيمة عدد المللي ثانية التي مرت منذ عصر Unix

  • تقوم String[] list() بإرجاع مجموعة من الملفات والأدلة الفرعية الموجودة في دليل محدد

  • يقوم File[] listFiles() بإرجاع مجموعة من الملفات والأدلة الفرعية الموجودة في دليل محدد

  • يقوم boolean mkdir() بإنشاء دليل جديد ويعيد صحيحًا إذا نجح

  • boolean renameTo(File dest) يعيد تسمية ملف أو دليل

بعض ميزات فئة ملف Java

  • المسار، مجردًا أو سلسلة، يمكن أن يكون مطلقًا أو نسبيًا. يمكن استرداد أصل المسار المجرد عن طريق استدعاء طريقة getParent() لتلك الفئة.

  • يجب علينا أولاً إنشاء كائن من فئة الملف ، وتمرير اسم الملف أو الدليل إليه. يمكن لنظام الملفات فرض قيود على عمليات معينة على كائن نظام الملفات الفعلي، مثل القراءة والكتابة والتنفيذ. تسمى هذه القيود أذونات الوصول.

  • مثيلات فئة الملف غير قابلة للتغيير. وهذا يعني أنه بمجرد إنشاء ملف، فإن المسار المجرد الذي يمثله كائن الملف لن يتغير أبدًا.

أمثلة على رمز فئة الملف

لنقم بإنشاء برنامج يعمل مع الدلائل. أولاً، يجب إنشاء دليل في المسار المحدد ثم إنشاء ملف جديد والتحقق من وجود الملف والدليل.
import java.io.File;
import java.io.IOException;

public class FileTest2 {
   public static void main(String[] args) throws IOException {

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
هنا هو الإخراج:
تم إنشاء المجلد... اسم الملف: cat.txt المجلد الأصلي: d:\MyDir الملف موجود
بالمناسبة، إذا فعلت كل شيء بشكل صحيح، يمكنك العثور على دليل وملف جديدين على جهاز الكمبيوتر الخاص بك. الآن دعونا نكتب برنامجًا يمكننا من خلاله العمل مع الدليل الذي تم إنشاؤه والملف. هنا نستخدم بعض الطرق الموضحة أعلاه.
import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
مخرجات البرنامج هي :
اسم الملف: cat.txt المجلد الأصلي: d:\MyDir الملف موجود المسار المطلق: d:\MyDir\cat.txt قابل للكتابة: true قابل للقراءة: true هو دليل: false myFile الحجم بالبايت = 0
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION