成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

1、字節(jié)流 2、字符流

asoren / 3099人閱讀

摘要:用兩個(gè)字節(jié)表示。兩個(gè)字節(jié)第一個(gè)字節(jié)是負(fù)數(shù)第二個(gè)字節(jié)可能是正數(shù)目前最常用的中文碼表,萬(wàn)的中文和符號(hào)。用兩個(gè)字節(jié)表示,其中的一部分文字,第一個(gè)字節(jié)開頭是,第二字節(jié)開頭是最新的中文碼表,目前還沒(méi)有正式使用。

01輸入和輸出
* A:輸入和輸出
    * a: 參照物
        * 到底是輸入還是輸出,都是以Java程序?yàn)閰⒄?    * b: Output
        * 把內(nèi)存中的數(shù)據(jù)存儲(chǔ)到持久化設(shè)備上這個(gè)動(dòng)作稱為輸出(寫)Output操作
        * 程序到文件稱為輸出
    * c: Input
        * 把持久設(shè)備上的數(shù)據(jù)讀取到內(nèi)存中的這個(gè)動(dòng)作稱為輸入(讀)Input操作
        * 文件到程序稱為輸入
    * d: IO操作
        * 把上面的這種輸入和輸出動(dòng)作稱為IO操作
02字節(jié)輸出流OutputStream
* A: 字節(jié)輸出流OutputStream
    * a.概念
        * IO流用來(lái)處理設(shè)備之間的數(shù)據(jù)傳輸
        * Java對(duì)數(shù)據(jù)的操作是通過(guò)流的方式
        * Java用于操作流的類都在IO包中
        * 流按流向分為兩種:輸入流,輸出流。
        * 流按操作類型分為兩種:
            * 字節(jié)流 : 字節(jié)流可以操作任何數(shù)據(jù),因?yàn)樵谟?jì)算機(jī)中任何數(shù)據(jù)都是以字節(jié)的形式存儲(chǔ)的
            * 字符流 : 字符流只能操作純字符數(shù)據(jù),比較方便。
    * b.IO流常用父類
        * 字節(jié)流的抽象父類:
            * InputStream 
            * OutputStream
        * 字符流的抽象父類:
            * Reader 
            * Writer        
    * c.IO程序書寫
        * 使用前,導(dǎo)入IO包中的類
        * 使用時(shí),進(jìn)行IO異常處理
        * 使用后,釋放資源
    * d: 方法介紹
        *  void close(): 關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。
        *  void write(byte[] b): 將 b.length 個(gè)字節(jié)從指定的 byte 數(shù)組寫入此輸出流
        *  void write(byte[] b, int off, int len) :將指定 byte 數(shù)組中從偏移量 off 開始的 len 個(gè)字節(jié)寫入此輸出流。
        * abstract  void write(int b) : 將指定的字節(jié)寫入此輸出流。

            
        
03字節(jié)輸出流FileOutputStream寫字節(jié)
* A: 字節(jié)輸出流FileOutputStream寫字節(jié)
    * a: FileOutputStream
        * 寫入數(shù)據(jù)文件,學(xué)習(xí)父類方法,使用子類對(duì)象
    * b: FileOutputStream構(gòu)造方法
        * 作用:綁定輸出的輸出目的
        * FileOutputStream(File file) 
            * 創(chuàng)建一個(gè)向指定 File 對(duì)象表示的文件中寫入數(shù)據(jù)的文件輸出流。
        * FileOutputStream(File file, boolean append) 
            * 創(chuàng)建一個(gè)向指定 File 對(duì)象表示的文件中寫入數(shù)據(jù)的文件輸出流,以追加的方式寫入。
        * FileOutputStream(String name) 
            * 創(chuàng)建一個(gè)向具有指定名稱的文件中寫入數(shù)據(jù)的輸出文件流。
        * FileOutputStream(String name, boolean append) 
            * 創(chuàng)建一個(gè)向具有指定 name 的文件中寫入數(shù)據(jù)的輸出文件流,以追加的方式寫入。
    * c: 流對(duì)象使用步驟
        *  1. 創(chuàng)建流子類的對(duì)象,綁定數(shù)據(jù)目的
        *  2. 調(diào)用流對(duì)象的方法write寫
        *  3. close釋放資源
    * d: 注意事項(xiàng)
        * 流對(duì)象的構(gòu)造方法,可以創(chuàng)建文件,如果文件存在,直接覆蓋
        
    * e: 案例代碼
    
        /*
         *   FileOutputStream
         *   寫入數(shù)據(jù)文件,學(xué)習(xí)父類方法,使用子類對(duì)象
         *   
         *   子類中的構(gòu)造方法: 作用:綁定輸出的輸出目的
         *     參數(shù):
         *       File    封裝文件
         *       String  字符串的文件名
         *   
         *   流對(duì)象使用步驟
         *     1. 創(chuàng)建流子類的對(duì)象,綁定數(shù)據(jù)目的
         *     2. 調(diào)用流對(duì)象的方法write寫
         *     3. close釋放資源
         *     
         *    流對(duì)象的構(gòu)造方法,可以創(chuàng)建文件,如果文件存在,直接覆蓋
         */
        public class FileOutputStreamDemo {
            public static void main(String[] args)throws IOException {
                FileOutputStream fos = new FileOutputStream("c:a.txt");
                //流對(duì)象的方法write寫數(shù)據(jù)
                //寫1個(gè)字節(jié)
                fos.write(97);
                //關(guān)閉資源
                fos.close();
                
            }
        }
04字節(jié)輸出流FileOutputStream寫字節(jié)數(shù)組
* A: 字節(jié)輸出流FileOutputStream寫字節(jié)數(shù)組
    * a: 方法介紹
        *  void write(byte[] b): 將 b.length 個(gè)字節(jié)從指定的 byte 數(shù)組寫入此輸出流
        *  void write(byte[] b, int off, int len) :將指定 byte 數(shù)組中從偏移量 off 開始的 len 個(gè)字節(jié)寫入此輸出流。
    * b: 案例代碼
        /*
         *   FileOutputStream
         *   寫入數(shù)據(jù)文件,學(xué)習(xí)父類方法,使用子類對(duì)象
         *   
         *   子類中的構(gòu)造方法: 作用:綁定輸出的輸出目的
         *     參數(shù):
         *       File    封裝文件
         *       String  字符串的文件名
         *   
         *   流對(duì)象使用步驟
         *     1. 創(chuàng)建流子類的對(duì)象,綁定數(shù)據(jù)目的
         *     2. 調(diào)用流對(duì)象的方法write寫
         *     3. close釋放資源
         *     
         *    流對(duì)象的構(gòu)造方法,可以創(chuàng)建文件,如果文件存在,直接覆蓋
         */
        public class FileOutputStreamDemo {
            public static void main(String[] args)throws IOException {
                FileOutputStream fos = new FileOutputStream("c:a.txt");
                //流對(duì)象的方法write寫數(shù)據(jù)
                //寫字節(jié)數(shù)組
                byte[] bytes = {65,66,67,68};
                fos.write(bytes);
                
                //寫字節(jié)數(shù)組的一部分,開始索引,寫幾個(gè)
                fos.write(bytes, 1, 2);
                
                //寫入字節(jié)數(shù)組的簡(jiǎn)便方式
                //寫字符串
                fos.write("hello".getBytes());

                //關(guān)閉資源
                fos.close();
                
            }
        }
05文件的續(xù)寫和換行符號(hào)
* A: 文件的續(xù)寫和換行符號(hào)
    * a: 文件的續(xù)寫
        *  FileOutputStream構(gòu)造方法, 的第二個(gè)參數(shù)中,加入true
    * b: 換行符號(hào)
        * 在文件中,寫入換行,符號(hào)換行  

        * 
 可以寫在上一行的末尾, 也可以寫在下一行的開頭
    * c: 案例代碼
            /*
             *  FileOutputStream 文件的續(xù)寫和換行問(wèn)題
             *  續(xù)寫: FileOutputStream構(gòu)造方法, 的第二個(gè)參數(shù)中,加入true
             *  在文件中,寫入換行,符號(hào)換行  

             *  
 可以寫在上一行的末尾, 也可以寫在下一行的開頭
             */
            public class FileOutputStreamDemo1 {
                public static void main(String[] args)throws IOException {
                    File file = new File("c:.txt");
                    FileOutputStream fos = new FileOutputStream(file,true);
                    fos.write("hello
".getBytes());
                    fos.write("world".getBytes());
                    fos.close();
                }
            }
06IO中的異常處理
* A: IO中的異常處理
    * a:IO流的異常處理
        * try catch finally
                        
    * b: 細(xì)節(jié)
        * 1. 保證流對(duì)象變量,作用域足夠
        * 2. catch里面,怎么處理異常
            * 輸出異常的信息,目的看到哪里出現(xiàn)了問(wèn)題
            * 停下程序,從新嘗試
        * 3. 如果流對(duì)象建立失敗了,需要關(guān)閉資源嗎
            * new 對(duì)象的時(shí)候,失敗了,沒(méi)有占用系統(tǒng)資源
            * 釋放資源的時(shí)候,對(duì)流對(duì)象判斷null
            * 變量不是null,對(duì)象建立成功,需要關(guān)閉資源
    
    * c: 案例代碼
        public class FileOutputStreamDemo3 {
            public static void main(String[] args) {
                //try 外面聲明變量,try 里面建立對(duì)象
                FileOutputStream fos = null;
                try{
                    fos = new FileOutputStream("s:a.txt");
                    fos.write(100);
                }catch(IOException ex){
                    System.out.println(ex);
                    throw new RuntimeException("文件寫入失敗,重試");
                }finally{
                    try{
                        if(fos!=null)
                          fos.close();
                    }catch(IOException ex){
                        throw new RuntimeException("關(guān)閉資源失敗");
                    }
                }
            }
        }
07字節(jié)輸入流InputStream
* A: 字節(jié)輸入流InputStream
    * a: 方法介紹
        * abstract  int read() :
            * 從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。
        * int read(byte[] b)  
            * 從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲(chǔ)在緩沖區(qū)數(shù)組 b 中。
        * int read(byte[] b, int off, int len) 
            * 將輸入流中最多 len 個(gè)數(shù)據(jù)字節(jié)讀入 byte 數(shù)組。
        * void close() 
            * 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
            
            
    * b: 案例代碼
        /*
         *   字節(jié)輸入流
         *     java.io.InputStream 所有字節(jié)輸入流的超類
         *   作用: 讀取任意文件,每次只讀取1個(gè)字節(jié)
         *   讀取的方法  read
         *     int  read() 讀取1個(gè)字節(jié)
         *     int  read(byte[] b) 讀取一定量的字節(jié),存儲(chǔ)到數(shù)組中
         */
        public class InputStreamDemo {

        }

                    
08字節(jié)輸入流FileInputStream讀取字節(jié)
* A: 字節(jié)輸入流FileInputStream讀取字節(jié)
    * a: 方法介紹
        * abstract  int read() :
            * 從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié),返回-1表示文件結(jié)束
        * int read(byte[] b)  
            * 從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲(chǔ)在緩沖區(qū)數(shù)組 b 中。
            * 讀入緩沖區(qū)的字節(jié)總數(shù),如果因?yàn)橐呀?jīng)到達(dá)文件末尾而沒(méi)有更多的數(shù)據(jù),則返回 -1。
        * int read(byte[] b, int off, int len) 
            * 將輸入流中最多 len 個(gè)數(shù)據(jù)字節(jié)讀入 byte 數(shù)組。
        * void close() 
            * 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
    * b: 案例代碼
        /*
         *  FileInputStream讀取文件
         *  
         *  構(gòu)造方法: 為這個(gè)流對(duì)象綁定數(shù)據(jù)源
         *  
         *    參數(shù): 
         *      File 類型對(duì)象
         *      String 對(duì)象
         *   輸入流讀取文件的步驟
         *     1. 創(chuàng)建字節(jié)輸入流的子類對(duì)象
         *     2. 調(diào)用讀取方法read讀取
         *     3. 關(guān)閉資源
         *     
         *     read()方法,
         *       read()執(zhí)行一次,就會(huì)自動(dòng)讀取下一個(gè)字節(jié)
         *       返回值,返回的是讀取到的字節(jié), 讀取到結(jié)尾返回-1
         */
        public class FileInputStreamDemo {
            public static void main(String[] args) throws IOException{
                FileInputStream fis = new FileInputStream("c:a.txt");
                //讀取一個(gè)字節(jié),調(diào)用方法read 返回int
                //使用循環(huán)方式,讀取文件,  循環(huán)結(jié)束的條件  read()方法返回-1
                int len = 0;//接受read方法的返回值
            
                while( (len = fis.read()) != -1){
                    System.out.print((char)len);
                }
                //關(guān)閉資源
                fis.close();
            }
        }

        /*
         * int i = fis.read();
                System.out.println(i);
                
                i = fis.read();
                System.out.println(i);
                
                i = fis.read();
                System.out.println(i);
                
                i = fis.read();
                System.out.println(i);
         */
09字節(jié)輸入流FileInputStream讀取字節(jié)數(shù)組
* A: 字節(jié)輸入流FileInputStream讀取字節(jié)數(shù)組
    * a: 方法介紹
        * int read(byte[] b)  
            * 從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲(chǔ)在緩沖區(qū)數(shù)組 b 中。
            * 讀入緩沖區(qū)的字節(jié)總數(shù),如果因?yàn)橐呀?jīng)到達(dá)文件末尾而沒(méi)有更多的數(shù)據(jù),則返回 -1。
        * int read(byte[] b, int off, int len) 
            * 將輸入流中最多 len 個(gè)數(shù)據(jù)字節(jié)讀入 byte 數(shù)組。
    * b: 案例代碼
        /*
         *  FileInputStream讀取文件
         *   讀取方法  int read(byte[] b) 讀取字節(jié)數(shù)組
         *   數(shù)組作用: 緩沖的作用, 提高效率
         *   read返回的int,表示什么含義 讀取到多少個(gè)有效的字節(jié)數(shù)
         */
        public class FileInputStreamDemo1 {
            public static void main(String[] args) throws IOException {
                FileInputStream fis = new FileInputStream("c:a.txt");
                // 創(chuàng)建字節(jié)數(shù)組
                byte[] b = new byte[2];

                int len = fis.read(b);
                System.out.println(new String(b));// ab
                System.out.println(len);// 2

                len = fis.read(b);
                System.out.println(new String(b));// cd
                System.out.println(len);// 2

                len = fis.read(b);
                System.out.println(new String(b));// ed
                System.out.println(len);// 1

                len = fis.read(b);
                System.out.println(new String(b));// ed
                System.out.println(len);// -1

                fis.close();
            }
        }
    
10字節(jié)輸入流FileInputStream讀取字節(jié)數(shù)組的實(shí)現(xiàn)原理
* A:字節(jié)輸入流FileInputStream讀取字節(jié)數(shù)組的實(shí)現(xiàn)原理
    * a: 原理
        * 參見day23_source文件夾中的"讀取數(shù)組的原理.jpg"
    
                
    * b: 案例代碼
    
        public class FileInputStreamDemo1 {
            public static void main(String[] args) throws IOException {
                FileInputStream fis = new FileInputStream("c:a.txt");
                //創(chuàng)建字節(jié)數(shù)組
                byte[] b = new byte[1024];
                
                int len = 0 ;
                while( (len = fis.read(b)) !=-1){
                    System.out.print(new String(b,0,len));
                }
                fis.close();
            }
        }

            
11文件復(fù)制原理
* A: 文件復(fù)制原理
    * a: 見day23_source/文件復(fù)制原理.jpg
12字節(jié)流復(fù)制文件讀取單個(gè)字節(jié)
* A: 字節(jié)流復(fù)制文件讀取單個(gè)字節(jié)
    * a: 案例代碼
        /*
         *  將數(shù)據(jù)源 c:a.txt
         *  復(fù)制到 d:a.txt  數(shù)據(jù)目的
         *  字節(jié)輸入流,綁定數(shù)據(jù)源
         *  字節(jié)輸出流,綁定數(shù)據(jù)目的
         *  
         *  輸入,讀取1個(gè)字節(jié)
         *  輸出,寫1個(gè)字節(jié)
         */
        public class Copy {
            public static void main(String[] args) {
                //定義兩個(gè)流的對(duì)象變量
                FileInputStream fis = null;
                FileOutputStream fos = null;
                try{
                    //建立兩個(gè)流的對(duì)象,綁定數(shù)據(jù)源和數(shù)據(jù)目的
                    fis = new FileInputStream("c:	.zip");
                    fos = new FileOutputStream("d:	.zip");
                    //字節(jié)輸入流,讀取1個(gè)字節(jié),輸出流寫1個(gè)字節(jié)
                    int len = 0 ;
                    while((len = fis.read())!=-1){
                        fos.write(len);
                    }
                }catch(IOException ex){
                    System.out.println(ex);
                    throw new RuntimeException("文件復(fù)制失敗");
                }finally{
                    try{
                        if(fos!=null)
                            fos.close();
                    }catch(IOException ex){
                        throw new RuntimeException("釋放資源失敗");
                    }finally{
                        try{
                            if(fis!=null)
                                fis.close();
                        }catch(IOException ex){
                            throw new RuntimeException("釋放資源失敗");
                        }
                    }
                }
            }
        }
13字節(jié)流復(fù)制文件讀取字節(jié)數(shù)組
* A: 字節(jié)流復(fù)制文件讀取字節(jié)數(shù)組
    * a: 案例代碼
        /*
         *  字節(jié)流復(fù)制文件
         *   采用數(shù)組緩沖提高效率
         *   字節(jié)數(shù)組
         *   FileInputStream 讀取字節(jié)數(shù)組
         *   FileOutputStream 寫字節(jié)數(shù)組
         */
        public class Copy_1 {
            public static void main(String[] args) {
                long s = System.currentTimeMillis();
                FileInputStream fis = null;
                FileOutputStream fos = null;
                try{
                    fis = new FileInputStream("c:	.zip");
                    fos = new FileOutputStream("d:	.zip");
                    //定義字節(jié)數(shù)組,緩沖
                    byte[] bytes = new byte[1024*10];
                    //讀取數(shù)組,寫入數(shù)組
                    int len = 0 ; 
                    while((len = fis.read(bytes))!=-1){
                        fos.write(bytes, 0, len);
                    }
                }catch(IOException ex){
                    System.out.println(ex);
                    throw new RuntimeException("文件復(fù)制失敗");
                }finally{
                    try{
                        if(fos!=null)
                            fos.close();
                    }catch(IOException ex){
                        throw new RuntimeException("釋放資源失敗");
                    }finally{
                        try{
                            if(fis!=null)
                                fis.close();
                        }catch(IOException ex){
                            throw new RuntimeException("釋放資源失敗");
                        }
                    }
                }
                long e = System.currentTimeMillis();
                System.out.println(e-s);
            }
        }
            
14編碼表
* A: 編碼表
    * a: 定義:
        * 生活中字符和計(jì)算機(jī)二進(jìn)制的對(duì)應(yīng)關(guān)系表,就是編碼表
    * b: 分類
        * 1、ascii: 一個(gè)字節(jié)中的7位就可以表示。對(duì)應(yīng)的字節(jié)都是正數(shù)。0-xxxxxxx
        * 2、iso-8859-1:拉丁碼表 latin,用了一個(gè)字節(jié)用的8位。1-xxxxxxx  負(fù)數(shù)。
        * 3、GB2312:簡(jiǎn)體中文碼表。包含6000-7000中文和符號(hào)。用兩個(gè)字節(jié)表示。兩個(gè)字節(jié)第一個(gè)字節(jié)是負(fù)數(shù),第二個(gè)字節(jié)可能是正數(shù)
            * GBK:目前最常用的中文碼表,2萬(wàn)的中文和符號(hào)。用兩個(gè)字節(jié)表示,其中的一部分文字,第一個(gè)字節(jié)開頭是1,第二字節(jié)開頭是0
            * GB18030:最新的中文碼表,目前還沒(méi)有正式使用。
        * 4、unicode:國(guó)際標(biāo)準(zhǔn)碼表:無(wú)論是什么文字,都用兩個(gè)字節(jié)存儲(chǔ)。
            * Java中的char類型用的就是這個(gè)碼表。char c = "a";占兩個(gè)字節(jié)。
            * Java中的字符串是按照系統(tǒng)默認(rèn)碼表來(lái)解析的。簡(jiǎn)體中文版 字符串默認(rèn)的碼表是GBK。
        * 5、UTF-8:基于unicode,一個(gè)字節(jié)就可以存儲(chǔ)數(shù)據(jù),不要用兩個(gè)字節(jié)存儲(chǔ),而且這個(gè)碼表更加的標(biāo)準(zhǔn)化,在每一個(gè)字節(jié)頭加入了編碼信息(后期到api中查找)。
        * 6、能識(shí)別中文的碼表:GBK、UTF-8;正因?yàn)樽R(shí)別中文碼表不唯一,涉及到了編碼解碼問(wèn)題。
            * 對(duì)于我們開發(fā)而言;常見的編碼 GBK  UTF-8  ISO-8859-1
            * 文字--->(數(shù)字) :編碼。 “abc”.getBytes()  byte[]
            * (數(shù)字)--->文字  : 解碼。 byte[] b={97,98,99}  new String(b) 
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類的子類對(duì)象 FileWriter
         *   
         *   構(gòu)造方法:  寫入的數(shù)據(jù)目的
         *     File 類型對(duì)象
         *     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類是抽象類,找到子類對(duì)象 FileReader
         *   
         *   構(gòu)造方法: 綁定數(shù)據(jù)源
         *     參數(shù):
         *        File  類型對(duì)象
         *        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()方法
        * 用來(lái)刷新緩沖區(qū)的,刷新后可以再次寫出,只有字符流才需要刷新
    *b: close()方法
        * 用來(lái)關(guān)閉流釋放資源的的,如果是帶緩沖區(qū)的流對(duì)象的close()方法,不但會(huì)關(guān)閉流,還會(huì)再關(guān)閉流之前刷新緩沖區(qū),關(guān)閉后不能再寫出 
        
18字符流復(fù)制文本文件
* A: 字符流復(fù)制文本文件
    * a: 案例代碼
        /*
         *  字符流復(fù)制文本文件,必須文本文件
         *  字符流查詢本機(jī)默認(rèn)的編碼表,簡(jiǎ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("釋放資源失敗");
                        }
                    }
                }
            }
        }
19總結(jié)
* 把今天的知識(shí)點(diǎn)總結(jié)一遍。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67160.html

相關(guān)文章

  • java學(xué)習(xí)(九) —— java中的File文件操作及IO概述

    摘要:字節(jié)流可以處理所有以為單位存儲(chǔ)的文件,也就是說(shuō)可以處理所有的文件,但是在處理字符的速度上不如字符流。文件字節(jié)輸入流的讀取時(shí),是直接同字節(jié)流中讀取的。原理就是在字節(jié)流的基礎(chǔ)上增加了編解碼的操作。 前言 流是干什么的:為了永久性的保存數(shù)據(jù)。 IO流用來(lái)處理設(shè)備之間的數(shù)據(jù)傳輸(上傳和下載文件) java對(duì)數(shù)據(jù)的操作是通過(guò)流的方式。 java用于操作流的對(duì)象都在IO包中。 java IO系統(tǒng)...

    ralap 評(píng)論0 收藏0
  • 高薪程序員&面試題精講系列22之說(shuō)說(shuō)Java的IO,常用哪些IO?

    摘要:一面試題及剖析今日面試題今天壹哥帶各位復(fù)習(xí)一塊可能會(huì)令初學(xué)者比較頭疼的內(nèi)容,起碼當(dāng)時(shí)讓我很有些頭疼的內(nèi)容,那就是流。在這里壹哥會(huì)從兩部分展開介紹流,即與流。除此之外盡量使用字節(jié)流。關(guān)閉此輸入流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源。 一. 面試題及剖析 1. 今日面試題 今天 壹哥 帶各位復(fù)習(xí)一塊可...

    fnngj 評(píng)論0 收藏0
  • 符編碼/Java節(jié)/Buffer原理/對(duì)象序列化

    摘要:中一個(gè)類型采用編碼,大小占兩個(gè)字節(jié),可以表示一個(gè)中文字符中類型采用字符集,無(wú)法表示一個(gè)中文字符緩沖區(qū)實(shí)現(xiàn)原理字節(jié)流本質(zhì)上是直接與慢速存儲(chǔ)設(shè)備進(jìn)行,速度較慢。從字節(jié)流中恢復(fù)一個(gè)對(duì)象,稱之為對(duì)象反序列化。 字符編碼/Java字符流與字節(jié)流/Buffer原理/對(duì)象序列化 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處https://segmentfault.com/u/yzwall 字符編碼與編...

    Scorpion 評(píng)論0 收藏0
  • 第十一章-IO#yyds干貨盤點(diǎn)#

    摘要:是一個(gè)系統(tǒng)支持的所有字符的集合,包括各國(guó)家文字標(biāo)點(diǎn)符號(hào)圖形符號(hào)數(shù)字等字符集簡(jiǎn)體中文碼表。支持中國(guó)國(guó)內(nèi)少數(shù)民族的文字,同時(shí)支持繁體漢字以及日韓漢字等字符集為表達(dá)任意語(yǔ)言的任意字符而設(shè)計(jì),是業(yè)界的一種標(biāo)準(zhǔn),也稱為統(tǒng)一碼標(biāo)準(zhǔn)萬(wàn)國(guó)碼。 1 File1.1 File類的概述和構(gòu)造方法File: 它是文件和目錄路徑名的抽象...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • Java014-IO

    摘要:字節(jié)流處理字節(jié)數(shù)據(jù)的流對(duì)象。寫入字符流的抽象類。是字符流通向字節(jié)流的橋梁可使用指定的將要寫入流中的字符編碼成字節(jié)。字節(jié)流是表示字節(jié)輸入流的所有類的超類。轉(zhuǎn)換流的最強(qiáng)功能就是基于字節(jié)流編碼表。刪除此抽象路徑名表示的文件或目錄。 IO流(重點(diǎn)理解)用于處理設(shè)備上數(shù)據(jù)。流:可以理解數(shù)據(jù)的流動(dòng),就是一個(gè)數(shù)據(jù)流。IO流最終要以對(duì)象來(lái)體現(xiàn),對(duì)象都存在IO包中。流也進(jìn)行分類:1:輸入流(讀)和輸出流...

    Ilikewhite 評(píng)論0 收藏0
  • 1、轉(zhuǎn)換 2、緩沖

    摘要:字符轉(zhuǎn)換流原理字節(jié)流編碼表。和作為子類,僅作為操作字符文件的便捷類存在。源目的先根據(jù)需求明確要讀,還是要寫。屏幕網(wǎng)絡(luò)完全可以明確具體要使用哪個(gè)流對(duì)象。明確四是否需要額外功能呢額外功能轉(zhuǎn)換嗎轉(zhuǎn)換流。高效嗎緩沖區(qū)對(duì)象。 01轉(zhuǎn)換流概述 * A: 轉(zhuǎn)換流概述 * a: 轉(zhuǎn)換流概述 * OutputStreamWriter 是字符流通向字節(jié)流的橋梁:可使用指定的字符編碼...

    sf190404 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<