字符流

 1.         字符流

在程序中一個字符等於兩個字節,Java爲我們提供了Reader和Writer兩個專門操作字符流的類

 

1)        字符輸出流:Writer

Writer是一個字符流,它是一個抽象類,所以要使用它,也必須通過其子類來實例化它後才能使用它。

Writer類的常用方法

方法名稱
 描述
 
public abstract void close() throws IOException
 關閉輸出流
 
public void write(String str) throws IOException
 將字符串輸出
 
public void write(char cbuf) throws IOException
 將字符數組輸出
 
public abstract void flush() throws IOException
 強制性清空緩存
 


 

向一個文本文件中通過字符輸出流寫入數據

    public static void main(String[] args) throws Exception {

       // 聲明一個File對象

       File file = new File("hellowolrd.txt");

 

       // 聲明一個Write對象

       Writer writer = null;

       // 通過FileWriter類來實例化Writer類的對象並以追加的形式寫入

       writer = new FileWriter(file, true);

 

       // 聲明一個要寫入的字符串

       String str = "字符串形式寫入Helloworld";

       // 寫入文本文件中

       writer.write(str);

       // 刷新

       writer.flush();

       // 關閉字符輸出流

       writer.close();

    }

 


 

2)        字符輸入流:Reader

Reader本身也是一個抽象類,同樣,如果使用它,我們需要通過其子類來實例化它纔可以使用它。

Reader類的常用方法

方法名稱
 描述
 
public abstract void close() throws IOException
  
 
public int read() throws IOException
  
 
public int read(char cbuf) throws IOException
  
 


 

在上面的基礎上把文本中的內容讀出來,並且顯示在控制檯上

    public static void main(String[] args) throws Exception {

       // 聲明一個File對象

       File file = new File("hellowolrd.txt");

 

       // 聲明一個Reader類的對象

       Reader reader = null;

 

       // 通過FileReader子類來實例化Reader對象

       reader = new FileReader(file);

 

       // 聲明一個字符數組

       char[] c = new char[1024];

//     // 將內容輸出

//     int len = reader.read(c);

       

       //循環方式一個一個讀

       int len=0;

       int temp=0;

       while((temp=reader.read())!=-1){

           

           c[len]=(char)temp;

       len++;

       }

       // 關閉輸入流

       reader.close();

       // 把char數組轉換成字符串輸出

       System.out.println(new String(c, 0, len));

 

    }


 

2.         字符流與字節流的區別

操作字節流操作時本身不會用到緩衝區,是文件本身直接操作,而字節流在操作時就使用到了緩衝區。

如果我們在操作字符流的時候,不關閉流,我們寫入的數據是無法保存的。所以在操作字符流的時候一定要記得關閉流。

 

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