خواندن خط به خط از یک فایل در جاوا
سه شنبه, ۲۱ شهریور ۱۳۹۱، ۱۱:۲۷ ق.ظ
معمولا در برنامه نویسی برای هر کاری چندین راه حل مختلف وجود دارد که در همین مورد هم مطرح است، برای خواندن متن از یک فایل چندین راه حل وجود دارد که من یکی از آنها را اینجا توضیح میدهم.
import
java.io.*;
class
FileRead
{
public
static
void
main(String args[])
{
try
{
FileInputStream fstream =
new
FileInputStream(
"textfile.txt"
);
DataInputStream in =
new
DataInputStream(fstream);
BufferedReader br =
new
BufferedReader(
new
InputStreamReader(in));
String strLine;
while
((strLine = br.readLine()) !=
null
) {
System.out.println (strLine);
}
in.close();
}
catch
(Exception e){
System.err.println(
"Error: "
+ e.getMessage());
}
}
اگر برنامه بالا را اجرا کنید شروع به خواندن از فایلی به نام textfile با پسوند txt میکند، که به توضیح آن میپردازم.
کلاس FileInputStream یکی از کلاس هایی است که با استفاده از آن میتوان به منبعی خارج از برنامه دسترسی پیدا کرد.
کلاس DataInputStream کلاسی است که با استفاده از آن میتوان داده ها را بصورت داده ابتدایی (Primitive Data Type) و بصورت مستقل از ساختار پلتفرم از هر Input Stream مانند FileInputStream خواند.
در خط بعدی کلاس InputStreamReader مانند پلی داده های باتی را به داده هایی از نوع کاراکتر تبدیل میکند.
در خط بعدی کلاس BufferedReader داده های کاراکتری را برای دسترسی بهتر و سریعتر buffer میکند.
و در نهایت با استفاده از حلقه while داده ها را از buffer بصورت خطی میخواند و آنها را در متغییر strLine ذخیره میکند و در console برنامه چاپ میکند.
و در انتها اتصال ایجاد شده به منبع خارجی را میبندد.
کل مجموعه کد در بلوک try - catch قرار دارد که اگر خطایی رخ داد ( مثلا منبع ارجاع داده شده textfile وجود نداشته باشد)، خطا شناسایی شود.
۹۱/۰۶/۲۱