Java學習第二十天

來源:互聯網
上載者:User

標籤:緩衝   方式   尾碼名   port   指定   redo   import   圖片   高效   

1:遞迴(理解)    (1)方法定義中調用方法本身的現象        舉例:老和尚給小和尚講故事,我們學編程    (2)遞迴的注意事項;        A:要有出口,否則就是死遞迴        B:次數不能過多,否則記憶體溢出        C:構造方法不能遞迴使用    (3)遞迴的案例:        A:遞迴求階乘        B:兔子問題        C:遞迴輸出指定目錄下所有指定尾碼名的檔案絕對路徑        D:遞迴刪除帶內容的目錄(小心使用)2:IO流(掌握)    (1)IO用於在裝置間進行資料轉送的操作        (2)分類:        A:流向            輸入資料流    讀取資料            輸出資料流    寫出資料        B:資料類型            位元組流                        位元組輸入資料流                    位元組輸出資料流            字元流                    字元輸入資料流                    字元輸出資料流        注意:            a:如果我們沒有明確說明按照什麼分,預設按照資料類型分。            b:除非檔案用windows內建的記事本開啟我們能夠讀懂,才採用字元流,否則建議使用位元組流。    (3)FileOutputStream寫出資料        A:操作步驟            a:建立位元組輸出資料流對象            b:調用write()方法            c:釋放資源                    B:代碼體現:            FileOutputStream fos = new FileOutputStream("fos.txt");                        fos.write("hello".getBytes());                        fos.close();                    C:要注意的問題?            a:建立位元組輸出資料流對象做了幾件事情?            b:為什麼要close()?            c:如何?資料的換行?            d:如何?資料的追加寫入?    (4)FileInputStream讀取資料        A:操作步驟            a:建立位元組輸入資料流對象            b:調用read()方法            c:釋放資源                    B:代碼體現:            FileInputStream fis = new FileInputStream("fos.txt");                        //方式1            int by = 0;            while((by=fis.read())!=-1) {                System.out.print((char)by);            }                        //方式2            byte[] bys = new byte[1024];            int len = 0;            while((len=fis.read(bys))!=-1) {                System.out.print(new String(bys,0,len));            }                        fis.close();    (5)案例:2種實現        A:複製文字檔        B:複製圖片        C:複製視頻    (6)位元組緩衝區流        A:BufferedOutputStream        B:BufferedInputStream    (7)案例:4種實現        A:複製文字檔        B:複製圖片        C:複製視頻        3:自學字元流    IO流分類        位元組流:            InputStream                FileInputStream                BufferedInputStream            OutputStream                FileOutputStream                BufferedOutputStream                字元流:            Reader                FileReader                BufferedReader            Writer                FileWriter                BufferedWriterimport java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/* * 基本位元組流一次讀寫一個位元組:共耗時:137049 * 基本位元組流一次讀寫一個數組:共耗時:243毫秒 * 高效位元組流一次讀寫一個位元組:共耗時:1219毫秒 * 高效位元組流一次讀寫一個數組:共耗時:80毫秒 */public class SeedTest2 {    public static void main(String[] args) throws IOException {        long start = System.currentTimeMillis();                //method1();        //method2();        //method3();        method4();        long end = System.currentTimeMillis();                System.out.println("共耗時:"+(end-start)+"毫秒");            }    private static void method4() throws IOException {        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("G:\\[胡彥斌]還魂門(電視劇《老九門》主題曲)_bd.mp4"));        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("G:\\demo\\胡彥斌2.mp4"));        System.out.println("高效位元組流一次讀寫一個數組");        byte[] bys = new byte[1024];        int len = 0;        while((len=bis.read(bys))!=-1){            bos.write(bys, 0, len);        }        bos.close();        bis.close();            }    private static void method3() throws IOException {        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("G:\\[胡彥斌]還魂門(電視劇《老九門》主題曲)_bd.mp4"));        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("G:\\demo\\胡彥斌1.mp4"));        System.out.println("高效位元組流一次讀寫一個位元組");        int by=0;        while((by=bis.read())!=-1){            bos.write(by);        }                bos.close();        bis.close();            }    private static void method2() throws IOException {        FileInputStream fis = new FileInputStream("G:\\[胡彥斌]還魂門(電視劇《老九門》主題曲)_bd.mp4");        FileOutputStream fos = new FileOutputStream("G:\\demo\\還魂門2.mp4");        System.out.println("基本位元組流一次讀寫一個數組");        byte[] bys = new byte[1024];        int len=0;        while((len=fis.read(bys))!=-1){            fos.write(bys, 0, len);        }        fos.close();        fis.close();        }    private static void method1() throws IOException {        FileInputStream fis = new FileInputStream("G:\\[胡彥斌]還魂門(電視劇《老九門》主題曲)_bd.mp4");        FileOutputStream fos = new FileOutputStream("G:\\demo\\還魂門1.mp4");        System.out.println("基本位元組流一次讀寫一個位元組");        int by = 0;        while((by=fis.read())!=-1){            fos.write(by);        }        fos.close();        fis.close();            }}

 

Java學習第二十天

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.