字節流和字符流的區別

一、緩衝區使用
    字節流不會用到緩衝區(內存),是文件自己直接操做的,而字符流在操做時使用了緩衝區,經過緩衝區再操做文件,因此使用字符流的時候要加上flush()方法,不然內容不會被寫出去,而是還在內存裏面。以下所示:
  1. package org.lxh.demo12.chariodemo;    
  2. import java.io.File;    
  3. import java.io.FileWriter;    
  4. import java.io.Writer;    
  5. public class WriterDemo04 {    
  6.     public static void main(String[] args) throws Exception { // 異常拋出不處理    
  7.         // 第1步:使用File類找到一個文件    
  8.         File f = new File("d:" + File.separator + "test.txt");// 聲明File    
  9. 對象    
  10.         // 第2步:經過子類實例化父類對象    
  11.         Writer out = null;                   
  12. // 準備好一個輸出的對象    
  13.         out = new FileWriter(f);             
  14. // 經過對象多態性進行實例化    
  15.         // 第3步:進行寫操做    
  16.         String str = "Hello World!!!";      
  17. // 準備一個字符串    
  18.         out.write(str);                    
  19. // 將內容輸出    
  20.         out.flush();                       
  21. // 強制性清空緩衝區中的內容    
  22.         // 第4步:關閉輸出流    
  23.         // out.close();                
  24. // 此時沒有關閉    
  25.     }    
  26. }   

字節流則不用加上清空緩存操做:
  1. public static void main(String[] args) throws Exception {   // 異常拋出,  不處理    
  2. // 第1步:使用File類找到一個文件    
  3.      File f = new File("d:" + File.separator + "test.txt"); // 聲明File  對象    
  4. // 第2步:經過子類實例化父類對象    
  5.      OutputStream out = null;            
  6. // 準備好一個輸出的對象    
  7.      out = new FileOutputStream(f);      
  8. // 經過對象多態性進行實例化    
  9. // 第3步:進行寫操做    
  10.      String str = "Hello World!!!";      
  11. // 準備一個字符串    
  12.      byte b[] = str.getBytes();          
  13. // 字符串轉byte數組    
  14.      out.write(b);                      
  15. // 將內容輸出    
  16.  // 第4步:關閉輸出流    
  17.     // out.close();                  
  18. // 此時沒有關閉    
  19.         }    
  20.     }  
二、字節流使用更普遍

        若是是音頻文件、圖片、歌曲,就用字節流好點,若是是關係到中文(文本)的,用字符流好點
相關文章
相關標籤/搜索