4.7 字符流的處理
java中提供了處理以16位的Unicode碼表示的字符流的類(lèi),即以Reader和Writer 為基類(lèi)派生出的一系列類(lèi)。
4.7.1 Reader和Writer
這兩個(gè)類(lèi)是抽象類(lèi),只是提供了一系列用于字符流處理的接口,不能生成這兩個(gè)類(lèi)的實(shí)例,只能通過(guò)使用由它們派生出來(lái)的子類(lèi)對(duì)象來(lái)處理字符流。
1.Reader類(lèi)是處理所有字符流輸入類(lèi)的父類(lèi)。
◇ 讀取字符
public int read() throws IOException; //讀取一個(gè)字符,返回值為讀取的字符
public int read(char cbuf[]) throws IOException; /*讀取一系列字符到數(shù)組cbuf[]中,返回值為實(shí)際讀取的字符的數(shù)量*/
public abstract int read(char cbuf[],int off,int len) throws IOException;
/*讀取len個(gè)字符,從數(shù)組cbuf[]的下標(biāo)off處開(kāi)始存放,返回值為實(shí)際讀取的字符數(shù)量,該方法必須由子類(lèi)實(shí)現(xiàn)*/
◇ 標(biāo)記流
public boolean markSupported(); //判斷當(dāng)前流是否支持做標(biāo)記
public void mark(int readAheadLimit) throws IOException;
//給當(dāng)前流作標(biāo)記,最多支持readAheadLimit個(gè)字符的回溯。
public void reset() throws IOException; //將當(dāng)前流重置到做標(biāo)記處
◇ 關(guān)閉流
public abstract void close() throws IOException;
2. Writer類(lèi)是處理所有字符流輸出類(lèi)的父類(lèi)。
◇ 向輸出流寫(xiě)入字符
public void write(int c) throws IOException;
//將整型值c的低16位寫(xiě)入輸出流
public void write(char cbuf[]) throws IOException;
//將字符數(shù)組cbuf[]寫(xiě)入輸出流
public abstract void write(char cbuf[],int off,int len) throws IOException;
//將字符數(shù)組cbuf[]中的從索引為off的位置處開(kāi)始的len個(gè)字符寫(xiě)入輸出流
public void write(String str) throws IOException;
//將字符串str中的字符寫(xiě)入輸出流
public void write(String str,int off,int len) throws IOException;
//將字符串str 中從索引off開(kāi)始處的len個(gè)字符寫(xiě)入輸出流
◇ flush( )
刷空輸出流,并輸出所有被緩存的字節(jié)。
◇ 關(guān)閉流
public abstract void close() throws IOException;
java中提供了處理以16位的Unicode碼表示的字符流的類(lèi),即以Reader和Writer 為基類(lèi)派生出的一系列類(lèi)。
4.7.1 Reader和Writer
這兩個(gè)類(lèi)是抽象類(lèi),只是提供了一系列用于字符流處理的接口,不能生成這兩個(gè)類(lèi)的實(shí)例,只能通過(guò)使用由它們派生出來(lái)的子類(lèi)對(duì)象來(lái)處理字符流。
1.Reader類(lèi)是處理所有字符流輸入類(lèi)的父類(lèi)。
◇ 讀取字符
public int read() throws IOException; //讀取一個(gè)字符,返回值為讀取的字符
public int read(char cbuf[]) throws IOException; /*讀取一系列字符到數(shù)組cbuf[]中,返回值為實(shí)際讀取的字符的數(shù)量*/
public abstract int read(char cbuf[],int off,int len) throws IOException;
/*讀取len個(gè)字符,從數(shù)組cbuf[]的下標(biāo)off處開(kāi)始存放,返回值為實(shí)際讀取的字符數(shù)量,該方法必須由子類(lèi)實(shí)現(xiàn)*/
◇ 標(biāo)記流
public boolean markSupported(); //判斷當(dāng)前流是否支持做標(biāo)記
public void mark(int readAheadLimit) throws IOException;
//給當(dāng)前流作標(biāo)記,最多支持readAheadLimit個(gè)字符的回溯。
public void reset() throws IOException; //將當(dāng)前流重置到做標(biāo)記處
◇ 關(guān)閉流
public abstract void close() throws IOException;
2. Writer類(lèi)是處理所有字符流輸出類(lèi)的父類(lèi)。
◇ 向輸出流寫(xiě)入字符
public void write(int c) throws IOException;
//將整型值c的低16位寫(xiě)入輸出流
public void write(char cbuf[]) throws IOException;
//將字符數(shù)組cbuf[]寫(xiě)入輸出流
public abstract void write(char cbuf[],int off,int len) throws IOException;
//將字符數(shù)組cbuf[]中的從索引為off的位置處開(kāi)始的len個(gè)字符寫(xiě)入輸出流
public void write(String str) throws IOException;
//將字符串str中的字符寫(xiě)入輸出流
public void write(String str,int off,int len) throws IOException;
//將字符串str 中從索引off開(kāi)始處的len個(gè)字符寫(xiě)入輸出流
◇ flush( )
刷空輸出流,并輸出所有被緩存的字節(jié)。
◇ 關(guān)閉流
public abstract void close() throws IOException;

