字符輸出流寫文本FileWriter類 字符輸入流讀取文本FileReader類 flush方法和close方法區(qū)別

15字符輸出流寫文本FileWriter類

* A: 字符輸出流寫文本FileWriter類
    * a: 方法介紹
        *  void write(int c)
            *  寫入單個(gè)字符
        * void write(String str)  
            * 寫入字符串
        * void write(String str, int off, int len) 
            * 寫入字符串的某一部分
        * void write(char[] cbuf)  
            * 寫入字符數(shù)組
        * abstract  void write(char[] cbuf, int off, int len)  
            *  寫入字符數(shù)組的某一部分
    * b: 案例代碼
        /*
         *   字符輸出流
         *     java.io.Writer 所有字符輸出流的超類
         *   寫文件,寫文本文件
         *   
         *   寫的方法 write
         *     write(int c) 寫1個(gè)字符
         *     write(char[] c)寫字符數(shù)組
         *     write(char[] c,int,int)字符數(shù)組一部分,開始索引,寫幾個(gè)
         *     write(String s) 寫入字符串
         *     
         *   Writer類的子類對象 FileWriter
         *   
         *   構(gòu)造方法:  寫入的數(shù)據(jù)目的
         *     File 類型對象
         *     String 文件名
         *     
         *   字符輸出流寫數(shù)據(jù)的時(shí)候,必須要運(yùn)行一個(gè)功能,刷新功能
         *   flush()
         */
        public class WriterDemo {
            public static void main(String[] args) throws IOException{
                FileWriter fw = new FileWriter("c:\\1.txt");
                
                //寫1個(gè)字符
                fw.write(100);
                fw.flush();
                
                //寫1個(gè)字符數(shù)組
                char[] c = {'a','b','c','d','e'};
                fw.write(c);
                fw.flush();
                
                //寫字符數(shù)組一部分
                fw.write(c, 2, 2);
                fw.flush();
                
                //寫如字符串
                fw.write("hello");
                fw.flush();
                
                fw.close();
            }
        }

16字符輸入流讀取文本FileReader類

* A: 字符輸入流讀取文本FileReader類
    * a: 方法介紹
        *  int read() 
            * 讀取單個(gè)字符
        * int read(char[] cbuf) 
            * 將字符讀入數(shù)組
        * abstract  int read(char[] cbuf, int off, int len)  
            * 將字符讀入數(shù)組的某一部分。
    * b: 案例代碼
        /*
         *  字符輸入流讀取文本文件,所有字符輸入流的超類
         *    java.io.Reader
         *  專門讀取文本文件
         *  
         *  讀取的方法 : read()
         *   int read() 讀取1個(gè)字符
         *   int read(char[] c) 讀取字符數(shù)組
         *   
         *   Reader類是抽象類,找到子類對象 FileReader
         *   
         *   構(gòu)造方法: 綁定數(shù)據(jù)源
         *     參數(shù):
         *        File  類型對象
         *        String文件名
         */
        public class ReaderDemo {
            public static void main(String[] args) throws IOException{
                FileReader fr = new FileReader("c:\\1.txt");
                /*int len = 0 ;
                while((len = fr.read())!=-1){
                    System.out.print((char)len);
                }*/
                char[] ch = new char[1024];
                int len = 0 ;
                while((len = fr.read(ch))!=-1){
                    System.out.print(new String(ch,0,len));
                }
                
                fr.close();
            }
        }

17flush方法和close方法區(qū)別

* A: flush方法和close方法區(qū)別
    *a: flush()方法
        * 用來刷新緩沖區(qū)的,刷新后可以再次寫出,只有字符流才需要刷新
    *b: close()方法
        * 用來關(guān)閉流釋放資源的的,如果是帶緩沖區(qū)的流對象的close()方法,不但會關(guān)閉流,還會再關(guān)閉流之前刷新緩沖區(qū),關(guān)閉后不能再寫出 

18字符流復(fù)制文本文件

* A: 字符流復(fù)制文本文件
    * a: 案例代碼
        /*
         *  字符流復(fù)制文本文件,必須文本文件
         *  字符流查詢本機(jī)默認(rèn)的編碼表,簡體中文GBK
         *  FileReader讀取數(shù)據(jù)源
         *  FileWriter寫入到數(shù)據(jù)目的
         */
        public class Copy_2 {
            public static void main(String[] args) {
                FileReader fr = null;
                FileWriter fw = null;
                try{
                    fr = new FileReader("c:\\1.txt");
                    fw = new FileWriter("d:\\1.txt");
                    char[] cbuf = new char[1024];
                    int len = 0 ;
                    while(( len = fr.read(cbuf))!=-1){
                        fw.write(cbuf, 0, len);
                        fw.flush();
                    }
                    
                }catch(IOException ex){
                    System.out.println(ex);
                    throw new RuntimeException("復(fù)制失敗");
                }finally{
                    try{
                        if(fw!=null)
                            fw.close();
                    }catch(IOException ex){
                        throw new RuntimeException("釋放資源失敗");
                    }finally{
                        try{
                            if(fr!=null)
                                fr.close();
                        }catch(IOException ex){
                            throw new RuntimeException("釋放資源失敗");
                        }
                    }
                }
            }
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容