<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > .net教程 >
        • Python3基礎之IO基本操作

        一、基本概念

         

        • 數據流
          輸入輸出時,數據在通信通道中流動。所謂數據流就是所有數據通信通道之中數據的起點和終點。
        • 輸入/輸出類
          在java.io中提供了60多個類(流),從功能上分為2大類:輸入流/輸出流;從流結構上分為:字節流/字符流;

        二、類層次結構

        三、文件的順序訪問

         

        1. 使用引入語句引入 java.io 包 import java.io.*;
        2. 根據不同數據源和輸入輸出任務 建立字節流或字符流對象
        3. 若需要對字節或字符流信息組織加工為數據 在已建字節流或字符流對象上構建數據流對象
        4. 用輸入輸出流對象類的成員方法進行讀寫操作 需要時設置讀寫位置指針
        5. 關閉流對象
          其中步驟 2--5 要考慮異常處理

        四、類對象&成員方法

        4.1 FileInputStream 和FileOutputStream類

         

        一. FileInputStream 類構造方法有

        FileInputStream(String name) //用文件名name建立流對象
        FileInputStream(File file) //用文件對象file建立流對象
        

        二. 讀取文件信息

        int read() //讀流中一個字節 若流結束則返回-1
        int read(byte b[]) //從流中讀字節填滿字節數組b 返回所讀字節數 若流結束則返回-1
        int read(byte b[],int off, int len) //從流中讀字節填入b[off]開始處 返回所讀字節數 若流結束則返回-1
        

        三.FileOutputStream類的構造方法有

        FileOutputStream(String name,boolean append) //用文件名name創建流對象
        FileOutputStream(File file,boolean append) //用文件對象 file 建立流對象
        PS:2中構造函數的第二個參數都是可選的。若這個參數的值為 true 則向文件尾輸出字節流
        

        四.向輸出流寫信息

        void write(int b) //將整型數據的低字節寫入輸出流
        void write(byte b[])//將字節數組b中的數據寫入輸出流
        void write(byte b[],int off,int len)//將字節數組 b 中從 off 開始的 len 個字節數據寫入輸出流
        

        五.關閉FileInputStream/FileOutputStream

        fin.close();
        fos.close();
        

        4.2 BufferedInputStream 和 BufferedOutputStream 類

         

        緩沖流類一般與另外的輸入輸出流類一起配合使用
        一.BufferedInputStream 類的構造方法如下

        BufferedInputStream(InputStream in) //并創建一個內部緩沖區數組來保存輸入數據
        BufferedInputStream(InputStream in , int size)//用 指 定 的 緩 沖 區 大 小 size 創 建 BufferedInputStream流對象
        

        二.BufferedOutputStream 類的構造方法如下

        BufferedOutputStream(OutputStream out) //創建緩沖輸出流 寫數據到參數指定的輸出流 緩沖區設為默認的 512 字節大小
        BufferedOutputStream(OutputStream out, int size)//創建緩沖輸出流 寫數據到參數指定 的輸出流 緩沖區設為指定的size字節大小
        

        三. 用flush()方法更新流
        要想在程序結束之前將緩沖區里的數據寫入磁盤 除了填滿緩沖區或關閉輸出流外 還可以顯式調用flush()方法

        4.3 InputSteamReader 和 OutputStreamWriter 類

         

        這是 java.io 包中用于處理字符流的基本類 用來在字節流和字符流之間搭一座 橋
        一.InputSteamReader 和 OutputStreamWriter 類的構造方法如下

        public InputSteamReader(InputSteam in)
        public InputSteamReader(InputSteam in,String enc) 
        public OutputStreamWriter(OutputStream out)
        public OutputStreamWriter(OutputStream out,String enc)
        //enc為指定的編碼規范 若無此參數 表示使用當前平臺的默認規范 可用getEncoding()方法得到當前字符流所用的編碼方式
        

        二.對象成員方法
        讀寫字符的方法 read() write() 關閉流的方法 close()等 與 Reader 和 Writer 類的同名方法用法都是類似的

        4.4 FileReader 和 FileWriter 類

         

        FileReader 和 FileWriter 類是 InputSteamReader 和 OutputStreamWriter 類的子類 利用它 們可方便地進行字符輸入/輸出操作
        一.FileReader 類的構造方法有

        FileReader(File file) //對指定要讀的file創建FileReader對象 
        FileReader(String fileName) //對指定要讀的fileName創建FileReader對象
        

        二.FileWriter 類的構造方法有

        FileWriter(File file) 對指定的file創建FileWriter對象
        FileWriter(String fileName) 對指定的fileName創建FileWriter對象
        // 兩個構造方法都可帶第二個布爾值的參數append 當append 為true時 為添加到輸出流
        

        三.FileReader 類的成員方法

        read() //返回輸入字符
        read(char[] buffer) //輸入字符到字符數 組中等
        

        四.FileWriter類的成員方法

        write(String str)  //輸出字符串
        write(char[]buffer) //輸出字符串
        write(int char)
        flush() //輸出緩沖字符
        close() //在執行flush后關閉輸出流
        getEncoding() //獲得 文件流字符的編碼
        

        4.5 BufferedReader 和 BufferedWriter 類

         

        一.構造方法

        public BufferedReader(Reader in) 
        public BufferedReader(Reader in,int sz) 
        public BufferedWriter(Writer out) 
        public BufferedWriter(Writer out,int sz)
        //其中in和out分別為字符流對象 sz為緩沖區大小 從上述構造方法的聲明可以看出 緩沖流的構造方法是基于字符流創建相應的緩沖流
        

        二.成員方法
        在 BufferedReader 和 BufferedWriter 類中 除了 Reader 和 Writer 中提供的基本讀寫方法 外 增加了對整行字符的處理方法readLine()和newLine()

        readLine() //從輸入流中讀取一行字符 行結束標志為回車符和換行符
        newLine() //向字符輸出流中寫入一個行結束標記 該標記是由系統 定義的屬性 line.separator
        

        五、文件的隨機訪問

         

        1.建立隨機訪問文件流對象

        RandomAccessFile(File file, String mode) 
        RandomAccessFile(String name, String mode)
        //mode為訪問文件的方式 有 r 或 rw 兩種形式 若 mode 為 r 則文件只能讀出 對這個對象的任何寫操作將拋出 IOException 異常   若 mode 為   rw   并且文件不存在   則該文件將被創建   若 name 為目錄 名   也將拋出IOException異常
        

        2.訪問隨機訪問文件

        read()
        write()
        

        3.移動文件指針

        public long getFilePointer() throws IOException //返回文件指針的當前字節位置
        public void seek(long pos) throws IOException //將文件指針定位到一個絕對地址pos,pos參數指明相對于文件頭的偏移量 地址0表示文件的開頭 
        public long length() throws IOException //返回文件的長度 地址 length() 表示文件 的結尾
        public int skipBytes(int n) throws IOException //將文件指針向文件尾方向移動n個字節
        

        六、目錄和文件管理

         

        6.1 目錄管理

        public boolean mkdir() //根據抽象路徑名創建目錄
        public String[] list() //返回抽象路徑名表示路徑中的文件名和目錄名
        

        6.2 文件管理

        • 創建一個新的文件對象
        File(String pathname) //通過給定的路徑名變換的抽象路徑創建文件對象
        File(File parent, String child) //從父抽象路徑 目錄 和子路徑字符串創建文件對象 
        File(String parent, String child) //從父路徑和子路徑字符串創建文件對象
        
        • 獲得文件名
        public String getName()  //得到一個文件名
        public String getParent()  //得到一個抽象路徑的父路徑名
        public String getPath()  //得到一個文件的路徑名
        public String getAbsolutePath()  //得到一個抽象路徑的絕對路徑名
        
        • 文件重命名
        public boolean renameTo(File dest) //將抽象路徑文件名重命名為給定的新文件名
        
        • 文件刪除
        public boolean delete() //刪除抽象路徑表示的文件或目錄
        
        • 文件測試
        public boolean exists()  //檢查抽象路徑表示的文件是否存在
        public boolean canWrite()  //檢查抽象路徑表示的文件是否可寫
        public boolean canRead()  //檢查抽象路徑表示的文件是否可讀
        public boolean isFile()  //檢查抽象路徑表示的文件是否為正常文件 非目錄
        public boolean isDirectory()  //檢查抽象路徑表示的是否為目錄
        public boolean isAbsolute()  //檢查抽象路徑表示的是否為絕對路徑
        
        • 獲得一般文件信息
        public long lastModified() //得到抽象路徑表示的文件最近一次修改的時間 
        public long length() //得到抽象路徑表示的文件的長度
        

        七、Q&A

         

        1.字節流操作圖片文件不會損壞,而字符流會損壞?
        答:字節流是讀取的是字節,也就是機器存儲時的源碼,任何軟件在計算機中存儲的形式都是二進制。用字符流復制的時候,他會按照你系統的字符碼表進行查找和替換,把二進制數據全部按照碼表替換了,有一些代碼能在編碼表中找到編碼,就轉換成編碼,但是還有好多找不到的代碼,JVM就會用一些類似的編碼代替,文件就會改變了,所以打不開。

        項目地址:https://gitee.com/neimenggudaxue/java_study/tree/master/

         
        2人點贊
         


        作者:迷糊銀兒
        鏈接:https://www.jianshu.com/p/706cfe679d02
        來源:簡書
        著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

        相關教程
        免费看成年人视频大全_免费看成年人视频在线观看