مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

آموزش خواندن و نوشتن و اضافه کردن به انتهای فایل در جاوا

چگونه در انتهای فایل جاوا بخوانیم و بنویسیم؟ کار با فایل ها یک عمل معمول در هر سیستم عاملی هست و اکثر زبانهای برنامه نویسی نیز امکاناتی را برای کار با فایل ها در نظر گرفته اند. زبان جاوا نیز امکانات خاصی برای کار با فایل ها دارد. در این مطلب قصد داریم عملیات خواندن و نوشتن و افزودن به فایل را در جاوا توضیح دهید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

در دوره آموزش جاوا ( آموزش برنامه نویسی جاوا ) این موارد بصورت رایگان آموزش داده شده است

خواندن یک فایل

برای خواندن یک فایل ما از کلاس های BufferedReader و FileReader استفاده می کنیم. در کد زیر نحوه خواندن از یک فایل و نمایش آن در صفحه نمایش را آورده ایم. این برنامه محتویات یک فایل را خط به خط خوانده و در خروجی نمایش می دهد.

import java.io.*;

public class Main {
   public static void main(String[] args)  {
      try {
         BufferedReader in = new BufferedReader
         (new FileReader("c:\\filename"));
         String str;
         while ((str = in.readLine()) != null) {
            System.out.println(str);
         }
         System.out.println(str);
         }
         catch (IOException e) {
         }
      }
   }
}

در کد بالا تا وقتی که به انتهای فایل نرسیده باشیم مقدار readLine مخالف null خواهد بود. اگر فایل موجود نباشد این برنامه کاری انجام نمی دهد.

نوشتن در فایل

مانند مثال قبل برای نوشتن در فایل از کلاس های BufferedWriter و کلاس FileWriter استفاده می کند. دقت داشته باشید که BufferedWriter یک شئ از نوع FileWriter به عنوان ورودی constructor دریافت می کند. خود کلاس FileWriter آدرس فایل را به عنوان ورودی دریافت می کند. دقت داشته باشید که بعد از خواندن باید استریم را با استفاده از متد close بست.

import java.io.*;

public class Main {
   public static void main(String[] args)  {
      try {
         BufferedWriter out = new 
         BufferedWriter(new FileWriter("outfilename"));
         out.write("aString");
         out.close();
         System.out.println
         ("File created successfully");
      }
      catch (IOException e) {
      }
   }
}

اگر عمل نوشتن در فایل موفقیت آمیز باشد خروجی برنامه به شکل زیر خواهد بود:

File created successfully.

افزودن به انتهای فایل

تصور کنید که یک فایل داریم که متنی در آن وجود دارد حال می خواهیم رشته ای را به انتهای آن اضافه نماییم. برای این عمل نیز از کلاس های BufferedWriter و FileWriter استفاده می کنیم. ولی با این تفاوت که در حالت افزودن باید به constructor FileWriter یک ورودی دوم از نوع Boolean بدهیم که مشخص کننده این است که آیا به فایل اضافه می کنیم یا خیر. با true دادن این ورودی متن نوشته شده به انتهای فایل اضافه خواهد شد. برای مثال به کد زیر دقت کنید:

import java.io.*;

public class Main {
   public static void main(String[] args) throws Exception {
      try {
         BufferedWriter out = new BufferedWriter
         (new FileWriter("filename"));
         out.write("aString1\n");
         out.close();
         out = new BufferedWriter(new FileWriter
         ("filename",true));
         out.write("aString2");
         out.close();
         BufferedReader in = new BufferedReader
         (new FileReader("filename"));
         String str;
         while ((str = in.readLine()) != null) {
            System.out.println(str);
         }
      }
      in.close();
      catch (IOException e) {
         System.out.println("exception occoured"+ e);
      }
   }
}

در برنامه بالا ابتدا یک فایل ساخته شده و یک متن در آن نوشته می شود سپس در مرحله دوم مقدار دیگری به فایل اضافه می شود و در آخر همه محتویات فایل نمایش داده می شود.خروجی برنامه بالا رشته زیر خواهد بود:

aString1
aString2

مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات