خواندن و نوشتن فایل در جاوا
در این جلسه تیم کدگیت را با آموزش خواندن و نوشتن فایل در جاوا همراهی کنید.پیش نیاز این جلسه شامل موارد زیر است:
فایل
در فرهنگ رایانه، پرونده یا فایل: به کوچکترین واحد منطقی ذخیرهسازی بر روی دیسک گفته میشود که کاربر یا برنامهساز، قادر به مشاهده و دستکاری آن است.
در یک تعریف کلی، فایل مجموعهای است دارای یک نام (و معمولاً دارای یک ساختار درونی مشخص) از نمونههای مختلف یک یا چند نوع رکورد. البته ممکن است فایل اصلاً مجموعهای از رکوردها نباشد، بلکه صرفاً دنبالهای بیساختار از نویسهها باشد که از نظر سیستم فایل، معنای خاصی هم ندارند.
تعریف بالا در سایت ویکیپدیا آمده است.
فایلها به دسته های مختلفی تقسیم میشوند:
- فایل متنی
- فایل صوتی
- فایل تصویری
- فایل اجرایی
در این آموزش ما به خواندن و نوشتن فایل متنی در جاوا میپردازیم.
پیاده سازی خواندن فایل در جاوا
در جاوا راههای زیادی برای خواندن فایل وجود دارد. یکی از راه ها، استفاده از کلاس BufferedReader است. کلاس BufferedReader برای خواندن یک متن از ورودی stream شده است. در این جا ما با استفاده از این کلاس میتوانیم یک فایل متنی را بخوانیم.کلاس های دیگری که استفاده میکنیم:
- File
- FileReader
کد خواندن فایل به شکل زیر است:
public class TestReadTextFile {
/**
* @param args
*/
public static void main(String[] args) {
try {
File file = new File("D:\\read file.txt");
if (file.exists()) {
System.out.println("****** Reading file ... ******");
BufferedReader buffer = new BufferedReader(new FileReader(file));
String line;
while ((line = buffer.readLine()) != null) {
System.out.println(line);
}
System.out.println("****** Finish Reading file ******");
}else{
System.out.println(file.getAbsolutePath()+" not exist");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
همانطور که در کد خواندن و نوشتن فایل در جاوا مشاهده میکنید ما از متدهای آماده در کلاس فایل و بافرریدر استفاده کردیم.متدهای استفاده شده شامل:
- Exist: اگر فایل مورد نظر وجود داشته باشد true و در غیر این صورت false برمیگرداند.
- readLine: در فایل مشخص شده یک خط را میخواند و به سر خط بعد میرود.
پیاده سازی نوشتن فایل در جاوا
برای نوشتن در فایل از کلاس bufferedwriter استفاده میشود. Bufferedwriter یک کلاس برای کنترل داده های کاراکتریست. با استفاده از این کلاس میتوانیم String و آرایه و … را به صورت مستقیم در فایل ذخیره کنیم. کلاس های دیگری که استفاده میکنیم:
- File
- FileWriter
کد نوشتن در فایل به شکل زیر است:
public class TestWriteTextFile {
/**
* @param args
*/
public static void main(String[] args) {
try {
File file = new File("D:\\write file.txt");
if (!file.exists()) {
file.createNewFile();
System.out.println("creating new file");
}else{
System.out.println("updating file");
}
BufferedWriter buffer = new BufferedWriter(new FileWriter(file));
buffer.write("hello");
buffer.close();
System.out.println("finish writing to file");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ما در کد بالا از دو متد در کلاس بافررایتر استفاده کردیم به نامهای:
- Close: این متد stream ایجاد شده را میبندد.
- Write: نوشتن یک سطر ساده
- newline: رفتن به سطر بعدی در فایل( در کد باید بنویسیم ()newLine)
سپاس