Reader和Writer類

 BufferedReader類:

構造方法:

BufferedReader(Reader in)   參數in爲指定被裝飾的Reader類,爲提高效率。一般用來裝飾InputStreamReader類
BufferedReader(Reader in, int sz)   參數in爲指定被裝飾的Reader類,sz爲緩衝區大小
void close()     關閉該流。
void mark(int readAheadLimit)  標記流中的當前位置。
boolean markSupported()  判斷此流是否支持 mark() 操作(它一定支持)。
int read()     讀取單個字符。
int read(char[] cbuf, int off, int len)     將讀入的字符保存數組的中,off爲保存的位置,len爲每次保存的字符數。返回值爲實際返回的字符數量
String readLine()  讀取一個文本行。
boolean ready()  判斷此流是否已準備好被讀取。
void reset()  將流重置爲最新的標記。
long skip(long n)  跳過字符。

BUfferedWriter類:常用來裝飾OutputStreamWriter類,
BufferedWriter(Writer out)     創建一個使用默認大小輸出緩衝區的緩衝字符輸出流。
BufferedWriter(Writer out, int sz)  創建一個使用指定大小輸出緩衝區的新緩衝字符輸出流。
void close()     關閉該流。
void flush()     刷新該流的緩衝。
void newLine()    寫入一個行分隔符。
void write(char[] cbuf, int off, int len)   寫入字符數組的某一部分。
void write(int c)    寫入單個字符。
void write(String s, int off, int len)  寫入字符串的某一部分。

InputStreamReader類:適配器:InputStreamReader把InputStream轉換爲Reader,可以指定數據源的字符編碼
常用來裝飾:FileInputStream類
InputStreamReader(InputStream in)
          使用本地平臺的字符編碼讀取輸入流中的字符
InputStreamReader(InputStream in, String charsetName)
          使用給定的字符編碼讀取輸入流中的字符
InputStreamReader(InputStream in, Charset cs)
          創建使用給定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)
          創建使用給定字符集解碼器的 InputStreamReader。
方法:
 void close()
          關閉該流。
 String getEncoding()
          返回此流使用的字符編碼的名稱。
 int read()
          每次讀取單個字符。
 int read(char[] cbuf, int offset, int length)
           將讀入的字符保存數組的中,off爲保存的位置,length爲每次保存的字符數。返回值爲實際返回的字符數量
 boolean ready()
          告知是否準備讀取此流。
爲提高讀數據一般將InputStreanReader類包裝在BufferedReader類中。而InputStreamReader常用來包裝FileInputStream類。



OutputStreamWriter類:適配器,將OutputStream轉化爲Writer,可以指定數據匯的編碼常用來裝飾FileOutputStream類
構造函數:
OutputStreamWriter(OutputStream out)
          按照本地平臺的字符編碼想輸出流寫入數據
OutputStreamWriter(OutputStream out, String charsetName)
          按照特定的字符編碼charsetName向輸出流寫入數據 。
OutputStreamWriter(OutputStream out, Charset cs)
          創建使用給定字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, CharsetEncoder enc)
          創建使用給定字符集編碼器的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName)
          創建使用指定字符集的 OutputStreamWriter。
方法:
void close()
          關閉該流。
void flush()
          刷新該流的緩衝。
String getEncoding()
          返回此流使用的字符編碼的名稱。
void write(char[] cbuf, int off, int len)
          將字符數組的一部分寫入到輸出流中,off起始寫的位置,len爲寫的長度
void write(int c)
          向輸出流寫入一個字符
void write(String str, int off, int len)
          將字符串的一部分寫入輸出流中
爲提高寫數據的效率,一般將OutputStreamWriter類包裝在BufferedWriter中,然後將BufferedWriter類包裝在PrintWriter類中,而OutputStreamWriter類常用來包裝FileOutputWriter類。

PrintWriter類: 常用來裝飾BufferedWriter類
構造方法:
PrintWriter(File file)
          使用指定文件創建不具有自動行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
          創建具有指定文件和字符集且不帶自動刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
          根據現有的 OutputStream 創建不帶自動行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
          通過現有的 OutputStream 創建新的 PrintWriter。
PrintWriter(String fileName)
          創建具有指定文件名稱且不帶自動行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
          創建具有指定文件名稱和字符集且不帶自動行刷新的新 PrintWriter。
PrintWriter(Writer out)
          創建不帶自動行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
          創建新 PrintWriter。
方法:
PrintWriter append(char c)
          將指定字符追加到此 writer。
 PrintWriter append(CharSequence csq)
          將指定的字符序列追加到此 writer。
 PrintWriter append(CharSequence csq, int start, int end)
          將指定字符序列的子序列追加到此 writer。
 boolean checkError()
          如果流沒有關閉,則刷新流且檢查其錯誤狀態。
 void close()
          關閉該流。
 void flush()
          刷新該流的緩衝。
 PrintWriter format(Locale l, String format, Object... args)
          使用指定格式字符串和參數將一個格式化字符串寫入此 writer 中。
 PrintWriter format(String format, Object... args)
          使用指定格式字符串和參數將一個格式化字符串寫入此 writer 中。
 void print(boolean b)
          打印 boolean 值。
 void print(char c)
          打印字符。
 void print(char[] s)
          打印字符數組。
 void print(double d)
          打印 double 精度浮點數。
 void print(float f)
          打印一個浮點數。
 void print(int i)
          打印整數。
 void print(long l)
          打印 long 整數。
 void print(Object obj)
          打印對象。
 void print(String s)
          打印字符串。
 PrintWriter printf(Locale l, String format, Object... args)
          使用指定格式字符串和參數將格式化的字符串寫入此 writer 的便捷方法。
 PrintWriter printf(String format, Object... args)
          使用指定格式字符串和參數將格式化的字符串寫入此 writer 的便捷方法。
 void println()
          通過寫入行分隔符字符串終止當前行。
 void println(boolean x)
          打印 boolean 值,然後終止該行。
 void println(char x)
          打印字符,然後終止該行。
 void println(char[] x)
          打印字符數組,然後終止該行。
 void println(double x)
          打印雙精度浮點數,然後終止該行。
 void println(float x)
          打印浮點數,然後終止該行。
 void println(int x)
          打印整數,然後終止該行。
 void println(long x)
          打印 long 整數,然後終止該行。
 void println(Object x)
          打印 Object,然後終止該行。
 void println(String x)
          打印 String,然後終止該行。
protected  void setError()
          指示已發生錯誤。
 void write(char[] buf)
          寫入字符數組。
 void write(char[] buf, int off, int len)
          將字符數組的某一部分寫入到輸出源中。
 void write(int c)
          將單個字符寫入到輸出源中。
 void write(String s)
          將單個字符串寫入到輸出源中。
 void write(String s, int off, int len)
          將字符串的某一部分寫入到輸出源中



FileReader類:是InputStreamReader的一個子類,用於從文件中讀取字符數據,該類只能按照本地平臺的字符編碼讀取數據:構造方法如下:繼承InputStreamReader的方法
FileReader(File file)
          file爲指定需要讀取的文件
FileReader(FileDescriptor fd)
          fd爲需要讀取的文件描述符
FileReader(String name)
          參數name指定需要讀取的文件的路徑

FileWriter類:是OutputStreamWriter的一個子類。該類智能按照杯底字符寫數據
FileWriter(File file)
          file爲輸出源
FileWriter(File file, boolean append)
          file爲輸出源,append是否追加到末尾
FileWriter(FileDescriptor fd)
          構造與某個文件描述符相關聯的 FileWriter 對象。
FileWriter(String fileName)
          fileName爲輸出源,包含路徑
FileWriter(String fileName, boolean append)
          fileName爲輸出源,包含路徑,append是否追加到末尾


CharArrayRead類:適配器,把字符數組轉換爲Reader類,從字符數組中讀取數據,因此數據源是一個字符數組:
CharArrayReader(char[] buf)
          從字符數組buf讀取數據字符
CharArrayReader(char[] buf, int offset, int length)
          從字符數組buf讀取數據字符,offset爲開始讀的位置,length爲讀取的長度
void close()
          關閉該流。
 void mark(int readAheadLimit)
          標記流中的當前位置。
 boolean markSupported()
          判斷此流是否支持 mark() 操作(它一定支持)。
 int read()
          讀取單個字符。 返回的是字符
 int read(char[] b, int off, int len)
          將讀入的字符保存數組的中,off爲保存的位置,len爲每次保存的字符數。返回值爲實際返回的字符數量
 boolean ready()
          判斷此流是否已準備好被讀取。
 void reset()
          將該流重置爲最新的標記,如果從未標記過,則將其重置到開頭。
 long skip(long n)
          跳過字符。

CharArrayWriter類:適配器,把字符數組轉化爲Writer,向內存中的字符數組中寫數據。
構造函數
CharArrayWriter()
          創建一個新的 CharArrayWriter。
CharArrayWriter(int initialSize)
          創建一個具有指定初始大小的新 CharArrayWriter。
方法:
CharArrayWriter append(char c)
          將指定字符追加到此 writer。
CharArrayWriter append(CharSequence csq)
          將指定的字符序列追加到此 writer。
CharArrayWriter append(CharSequence csq, int start, int end)
          將指定字符序列的子序列追加到此 writer。
void close()
          關閉該流。
void flush()
          刷新該流的緩衝。
void reset()
          重置該緩衝區,以便再次使用它而無需丟棄已分配的緩衝區。
int size()
          返回緩衝區的當前大小。
char[] toCharArray()
          將內存中的字符數組返回,即通過這種方法返回字符

String toString()
          將將內存中的字符數組以字符串的形式返回

void write(char[] c, int off, int len)
          將字數數組c中的字符寫入內存中字符數組,off爲起始寫的位置,len爲寫的字符數量
void write(int c)
          將一個字符寫入內存中的字符數組
void write(String str, int off, int len)
          將字符串的某一部分寫入內存中的字符數組
void writeTo(Writer out)
          將緩衝區的內容寫入另一個字符流。

StringReader類:適配器,把字符串轉換爲Reader,從字符串中讀取數據
StringReader(String s)
         參數s爲指定字符串類型的數據源

void close()
          關閉該流。
void mark(int readAheadLimit)
          標記流中的當前位置。
boolean markSupported()
          告知此流是否支持 mark() 操作以及支持哪一項操作。
int read()
          每次從字符串中讀取一個字符
int read(char[] cbuf, int off, int len)
          將讀取的字符保存在字符數組cbuf中,off爲開始保存的位置,len爲每次讀取的字符數。返回的實際讀取的字符數量
boolean ready()
          告知是否準備讀取此流。
void reset()
          將該流重置爲最新的標記,如果從未標記過,則將其重置到該字符串的開頭。
long skip(long ns)
          跳過流中指定數量的字符。


標準IO類:
System.in爲InputStream類,標準輸入流,默認的數據源爲鍵盤。

System.out爲PrintStream類,代表輸出類,默認的數據匯是控制檯。
Systemerr爲PrintStream類,代表標準錯誤輸出,默認的數據匯爲控制檯


發佈了21 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章