نحوه خواندن و نوشتن و افزودن به انتهای فایل در جاوا

elahi

مدیریت
مدیر کل انجمن
با سلام به همه دوستان و همراهان Itpro. کار با فایل ها یک عمل معمول در هر سیستم عاملی هست و اکثر زبانهای برنامه نویسی نیز امکاناتی را برای کار با فایل ها در نظر گرفته اند. زبان جاوا نیز امکانات خاصی برای کار با فایل ها دارد. در این مطلب قصد داریم عملیات خواندن و نوشتن و افزودن به فایل را در جاوا توضیح دهید.
خواندن یک فایل
برای خواندن یک فایل ما از کلاس های 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 بست.

کد:
[LEFT]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 دادن این ورودی متن نوشته شده به انتهای فایل اضافه خواهد شد. برای مثال به کد زیر دقت کنید:

کد:
[LEFT]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​


نویسنده: مهدی عادلی فر
منبع: انجمن تخصصی فناوری اطلاعات ایران
 
آخرین ویرایش:
بالا