CodeGym /وبلاگ جاوا /Random-FA /کلاس فایل Java.io
John Squirrels
مرحله
San Francisco

کلاس فایل Java.io

در گروه منتشر شد
در بسیاری از موارد، برنامه نیاز به دسترسی به فایل های خاصی در کار خود دارد. به عنوان مثال، داده های کاربر را می توان در برخی از فایل های خارجی ضبط کرد، و برای خواندن آن، برنامه باید بتواند با آن کار کند - باز کردن، خواندن داده ها، احتمالا ویرایش و بستن. برای این منظور، زبان برنامه نویسی جاوا دارای کلاس Java.io.File است . در این مقاله به بررسی نوع کلاس می پردازیم و نمونه ای از کار با آن را بیان می کنیم.

کلاس Java File چیست؟

کلاس File در بسته java.io تعریف شده است و مستقیماً با استریم ها کار نمی کند . کلاس Java File برای مدیریت اطلاعات فایل ها و دایرکتوری ها است. همانطور که می دانید، در سطح سیستم عامل، فایل ها و دایرکتوری ها اشیاء متفاوتی هستند. با این حال، در جاوا، هر دو توسط یک کلاس File توصیف می شوند . شاید تعجب کنید که چرا فقط از رشته ها برای ارجاع به فایل ها استفاده نمی کنید؟ اول از همه به این دلیل که دسترسی به فایل در سیستم عامل های مختلف متفاوت است.

سازنده کلاس فایل

بسته به اینکه شی Java.io.File Class باید یک فایل یا یک دایرکتوری را نشان دهد، می توانیم از یکی از سازنده ها برای ایجاد شی استفاده کنیم: File(String pathname) در این مورد سازنده با تبدیل نام مسیر داده شده یک نمونه File جدید ایجاد می کند. رشته به نام مسیر انتزاعی. File (String myPath, String myString) این سازنده یک نمونه فایل جدید از یک رشته نام مسیر myPath و یک رشته نام مسیر myString ایجاد می کند. File (والد فایل، نام رشته) یک نمونه فایل جدید از یک نام مسیر انتزاعی فایل و یک رشته نام مسیر نام ایجاد می کند. File(URI uri) در این مورد سازنده یک نمونه فایل جدید را با تبدیل فایل داده شده ایجاد می کند: URI به نام مسیر انتزاعی. URI یک کلاس جاوا است که نشان دهنده یک مرجع شناسه منبع (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 دارای تعدادی روش است که به شما امکان می دهد فایل ها و دایرکتوری ها را دستکاری کنید. بیایید برخی از آنها را در نظر بگیریم:
  • ()createNewFile boolean یک فایل جدید در مسیر ارسال شده به سازنده ایجاد می کند. در صورت موفقیت، true، در غیر این صورت false را برمی گرداند

  • delete() boolean یک دایرکتوری یا فایل را در مسیر ارسال شده به سازنده حذف می کند. در صورت حذف موفقیت آمیز، true را برمی گرداند

  • boolean exists() بررسی می کند که آیا یک فایل یا دایرکتوری در مسیر مشخص شده در سازنده وجود دارد یا خیر. اگر فایل یا دایرکتوری وجود داشته باشد، true را برمی‌گرداند، else false را برمی‌گرداند

  • رشته getAbsolutePath() مسیر مطلق مسیر ارسال شده به سازنده شی را برمی گرداند.

  • رشته getName() نام کوتاه یک فایل یا دایرکتوری را برمی گرداند

  • رشته getParent() نام دایرکتوری والد را برمی گرداند

  • اگر مسیر داده شده حاوی دایرکتوری باشد، isDirectory() boolean true برمی گرداند

  • اگر فایلی در مسیر داده شده وجود داشته باشد isFile() boolean true را برمی گرداند

  • اگر دایرکتوری یا فایل مخفی باشد، isHidden() boolean true را برمی گرداند

  • long length() اندازه فایل را بر حسب بایت برمی گرداند

  • long lastModified() زمانی را برمی گرداند که یک فایل یا دایرکتوری آخرین بار اصلاح شده است. مقدار نشان دهنده تعداد میلی ثانیه هایی است که از دوره یونیکس گذشته است

  • String[] list() آرایه ای از فایل ها و زیر شاخه ها را برمی گرداند که در یک فهرست خاص قرار دارند

  • File[] listFiles() آرایه ای از فایل ها و زیر شاخه ها را که در یک دایرکتوری خاص هستند برمی گرداند

  • mkdir() boolean یک دایرکتوری جدید ایجاد می کند و در صورت موفقیت آمیز بودن مقدار true را برمی گرداند

  • boolean renameTo(File dest) یک فایل یا دایرکتوری را تغییر نام می دهد

برخی از ویژگی های کلاس Java File

  • مسیر، انتزاعی یا رشته ای، می تواند مطلق یا نسبی باشد. والد یک مسیر انتزاعی را می توان با فراخوانی متد getParent() آن کلاس بازیابی کرد.

  • ابتدا باید یک شی از کلاس File ایجاد کنیم و نام یک فایل یا دایرکتوری را به آن منتقل کنیم. سیستم فایل می‌تواند محدودیت‌هایی را بر روی عملیات‌های خاصی بر روی شی سیستم فایل واقعی، مانند خواندن، نوشتن و اجرا اعمال کند. این محدودیت ها مجوز دسترسی نامیده می شوند.

  • نمونه های کلاس File تغییر ناپذیر هستند. این بدان معناست که هنگامی که یک فایل ایجاد می کنید، مسیر انتزاعی که توسط شی File نشان داده شده است هرگز تغییر نخواهد کرد.

نمونه کد کلاس فایل

بیایید برنامه ای ایجاد کنیم که با دایرکتوری ها کار کند. اول از همه باید یک دایرکتوری در مسیر داده شده ایجاد کنید و سپس یک فایل جدید ایجاد کنید و بررسی کنید که آیا فایل و دایرکتوری وجود دارد یا خیر.
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