java的IO流 字元流

2021-09-24 01:48:18 字數 3078 閱讀 3907

reader 是所有的輸入字元流的父類,它是乙個抽象類。

reader 中各個類的用途和使用方法基本和inputstream 中的類使用一致。後面會有reader 與inputstream 的對應關係。

(1)看看幾個常用的實現類

該類從資料來源讀取位元組並將其解碼為使用指定的字符集的字元。inputstreamreader 是乙個連線位元組流和字元流的橋梁,它將位元組流轉變為字元流。位元組流比字元流的使用範圍更廣,但字元流比位元組流操作方便。如果現在有乙個位元組流,但可以確定這個位元組流的內容都是文字內容,我們就可以將它轉換成字元流處理起來會更方便一點。

//建立乙個使用預設字符集的 inputstreamreader。

inputstreamreader(inputstream in)

// 建立使用指定字符集的 inputstreamreader。

inputstreamreader(inputstream in, string charsetname)

該類繼承於inputstreamreader,用於讀取字元類檔案,如文字檔案。filereader可以說是乙個達到此功能、常用的工具類,在其源**中明顯使用了將fileinputstream 轉變為reader 的方法。

位元組輸入緩衝流,從字元輸入流中讀取文字,緩衝各個字元,從而實現字元、陣列和行的高效讀取。bufferedreader 由reader類擴充套件而來,提供通用的緩衝方式文字讀取,而且提供了很實用的readline。

//讀取乙個文字行。通過下列字元之一即可認為某行已終止:換行 ('\n')、回車 ('\r') 或回車後直接跟著換行。

public string readline()throws ioexception

(2)看看常用方法:下面是reader類的常用方法介紹。

該方法用於讀取單個字元,返回作為整數讀取的字元,如果已經到達流的末尾,返回-1。

該方法用於將字元讀入到cbuf,返回讀取的字元數。

該方法用於讀取len個字元的資料,並從陣列cbuf的off位置讀入到這個陣列中。

關閉此輸入流,並釋放與此輸出流相關聯的所有系統資源。

writer:是所有的輸出字元流的父類,它是乙個抽象類。

將位元組輸出流轉為字元輸出流,是字元流通向位元組流的橋梁,可使用指定的 charset 將要寫入流中的字元編碼成位元組。它使用的字符集可以由名稱指定或顯式給定,否則將接受平台預設的字符集。常用夠造方法如下:

//可以設定編碼格式

public outputstreamwriter(outputstream out, string charsetname);

//建立使用預設字元編碼的 outputstreamwriter。

public outputstreamwriter(outputstream out)

從outputstreamwriter類繼承而來。該類按字元向流中寫入資料,可以關聯原始檔。主要夠造函式:

//建立字元輸出流類物件和已存在的檔案相關聯。

filewriter fw = new filewriter(string filename);

//檔案不存在的話,並建立。

如:filewriter fw = new filewriter("c:\\demo.txt");

//建立字元輸出流類物件和已存在的檔案相關聯,並設定該該流對檔案的操作是否為續寫。

// 表示在fw對檔案再次寫入時,會在該檔案的結尾續寫,並不會覆蓋掉。

如:filewriter fw = new filewriter("c:\\demo.txt",ture);

位元組輸出緩衝流,將文字寫入字元輸出流,緩衝各個字元,從而提供單個字元、陣列和字串的高效寫入。 可以指定緩衝區的大小,或者接受預設的大小。在大多數情況下,預設值就足夠大了。 該類提供了 newline() 方法,它使用平台自己的行分隔符概念,此概念由系統屬性 line.separator 定義。該類寫入文字的方法就是父類writer提供的write()系列方法,在這裡我們演示他特有的newline( )方法:

public static void newlinetest() throws ioexception

//結果:(加入了換行符)

愛我中華

1、inputstreamreader:讀取單個字元。在字元可用、發生 i/o 錯誤或者已到達流的末尾前,此方法一直阻塞。

從輸入流讀取若干字元資料,並儲存到字元陣列。在某個輸入可用、發生 i/o 錯誤或者已到達流的末尾前,此方法一直阻塞。

從輸入流讀取至多len個字元資料,並儲存到字元陣列

public class inputstreamreadertest 

}}

2、outputstreamwriter:

public class outputstreamwritertest 

}

3、字元流提供了帶緩衝區的包裝流,分別是bufferedreader和bufferedwriter,其中bufferedreader用於對字元輸入流進行包裝,bufferedwriter用於對字元輸出流進行包裝。緩衝區的出現提高了對資料的讀寫效率。

檔案複製示例:

public class bufferedrwtest 

*///另一種方式:

char ch=new char[1024];

int len=0;

while((len=br.read(ch))!=-1)

br.close();

bw.close();

}}

借鑑部落格:

Java中的IO流之字元流

看完了位元組流 接下來我們來了解一下字元流 字元流字元流是可以直接讀寫字元的io流,用字元流來讀取字元時,先讀取到位元組資料,然後轉為字元。寫出字元時,需要把字元轉為位元組再寫出。還是上 吧 filereader filereader 類中的 read 方法可以按照字元大小讀取 這樣就把文字中的文字...

IO流(字元流)

1.概念 2.寫入與讀取 3.文字檔案的拷貝 4.使用字元流的情況 5.使用bufferedreader和bufferedwriter 6.裝飾設計模式 7.不同碼表讀取字元的轉換 字元流 直接讀取字元的io 字元流讀取字元,先讀取位元組然後轉換為字元,寫入時將字元轉化為位元組後寫入 try fil...

IO流 字元流

字元流,以字元為單位讀寫資料 reader 轉換流 inpustreamreader filereader bufferedreader writer 轉換流 outstreamwriter filewriter bufferedwriterreader 的基本方法 讀取乙個字元並以整數的形式返回,...