کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Java – کار با کلاس BufferedReader در Java

آموزش Java – کار با کلاس BufferedReader در Java

کلاس BufferedReader برای خواندن متن از یک input stream مبتنی بر کاراکتر بکار می رود. توسعه دهنده می تواند با فراخوانی متد readline() از این کلاس محتوای فایل مورد نظر را خط به خط بخواند. این کلاس به سبب استفاده از buffer، سرعت و کارایی اپلیکیشن را افزایش می دهد.

BufferedReader از کلاس انتزاعی Reader ارث بری داشته و توابع آن را در سطح خود پیاده سازی و بازنویسی می کند.

دستور تعریف کلاس BufferedReader در Java

دستور تعریف کلاس Java.io.BufferedReader در جاوا به شرح زیر می باشد:

public class BufferedReader extends Reader  

توابع سازنده ی (Constructor) کلاس

No.
تابع سازنده (Constrcutor)
شرح
1
BufferedReader(Reader rd)
این تابع یک input stream مبتنی بر کاراکتر در حافظه ی واسط که حجم آن بر اساس مقدار پیش فرض buffer تعیین شده، ایجاد می نماید.
2
BufferedReader(Reader rd, int size)
این تابع یک input stream مبتنی بر کاراکتر در حافظه ی واسط که حجم آن بر اساس مقدار ارسال شده به عنوان آرگومان (int size) تعیین شده، ایجاد می نماید.

متدهای کلاس BufferedReader در Java

No.
متد
شرح
1
int read()
یک تک کاراکتر را از input stream می خواند.
2
int read(char[] cbuf, int off, int len)
تعدادی کاراکتر را از نقطه ی مشخص شده (off) و به تعداد معین (len) از input stream در buffer خوانده و در آرایه ی ارسال شده به عنوان آرگومان درج می کند.
3
boolean markSupported()
این متد بررسی می کند آیا input stream از عملیات (متدهای) mark و reset پشتیبانی می کند یا خیر.
4
String readLine()
این تابع یک خط از متن را می خواند.
5
boolean ready()
این متد بررسی می کند آیا input stream آماده بوده و محتوای خود را برای خواندن در اختیار قرار می دهد یا خیر.
6
long skip(long n)
این متد تعدادی کاراکتر را از input stream نادیده گرفته و آن ها را نمی خواند.
7
void reset()
این متد stream را به نقطه ای که تابع mark() آخرین بار در آن صدا زده شده و داده ها از آن نقطه خوانده و ذخیره شده اند، برمی گرداند.
8
void mark(int readAheadLimit)
محل خواندن داده ها را در input stream جاری تغییر داده و تنظیم می کند.
9
void close()
Input stream مورد نظر را بسته و تمامی منابع سیستمی تخصیص یافته به آن را آزاد می سازد.

مثال کاربردی از کلاس BufferedReader

در مثال جاری، توسعه دهنده به واسطه ی آبجکتی از جنس کلاس BufferedReader محتوای فایل testout.txt را می خواند.

package com.javatpoint;  
import java.io.*;  
public class BufferedReaderExample {  
public static void main(String args[])throws Exception{    
FileReader fr=new FileReader("D:\\testout.txt");    
BufferedReader br=new BufferedReader(fr);    
int i;    
while((i=br.read())!=-1){  
System.out.print((char)i);  
}  
br.close();    
fr.close();    
}    
}    

در نمونه ی حاضر فرض را بر این می گذاریم که فایل "testout.txt" دارای محتوای زیر می باشد:

Welcome to javaTpoint.

خروجی:

Welcome to javaTpoint.

خواندن داده از کنسول به واسطه ی نمونه هایی از کلاس InputStreamReader و BufferedReader

در مثال حاضر، برنامه نویس یک آبجکت از جنس کلاس InputStreamReader را به عنوان آرگومان به BufferedReader ارسال کرده، این دو جریان ورودی را به هم وصل می کند. سپس با فراخوانی متد readLine() از کلاس BufferedReader خط به خط محتوا را از input stream می خواند.

package com.javatpoint;  
import java.io.*;  
public class BufferedReaderExample{    
public static void main(String args[])throws Exception{             
InputStreamReader r=new InputStreamReader(System.in);    
BufferedReader br=new BufferedReader(r);            
System.out.println("Enter your name");    
String name=br.readLine();    
System.out.println("Welcome "+name);    
}    
}  

خروجی:

Enter your name
Nakul Jain
Welcome Nakul Jain
آموزش Java

مثال دیگری از خواندن داده ها از کنسول تا زمانی که کاربر مکث می کند

package com.javatpoint;  
import java.io.*;  
public class BufferedReaderExample{    
public static void main(String args[])throws Exception{             
InputStreamReader r=new InputStreamReader(System.in);    
BufferedReader br=new BufferedReader(r);           
String name="";    
while(!name.equals("stop")){    
System.out.println("Enter data: ");    
name=br.readLine();    
System.out.println("data is: "+name);    
}              
br.close();    
r.close();    
}    
}  

خروجی:

Enter data: Nakul
data is: Nakul
Enter data: 12
data is: 12
Enter data: stop
data is: stop
1396/08/23 5835 2412
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...