<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自學(xué)筆記:IO流

          共 3334字,需瀏覽 7分鐘

           ·

          2021-05-02 14:14

          I/O流

          流根據(jù)流的方向分為輸入流和輸出流

          • 輸入流:字節(jié)輸入流、字符輸入流

          • 輸出流:字節(jié)輸出流、字符輸出流

          輸入流是從數(shù)據(jù)源中讀取數(shù)據(jù),只進(jìn)行讀操作。
          輸出流是將數(shù)據(jù)寫(xiě)入到指定文件中,只進(jìn)行寫(xiě)操作。

          根據(jù)流的數(shù)據(jù)類(lèi)型分為字節(jié)流和字符流

          • 字節(jié)流:字節(jié)輸入流、字節(jié)輸出流

          • 字符流:字符輸入流、字符輸出流

          純文本數(shù)據(jù)優(yōu)先使用字符流,除此之外使用字節(jié)流。

          字節(jié)流

          字節(jié)流結(jié)構(gòu)圖:


          InputStream

          為字節(jié)輸入流的根類(lèi),有多個(gè)子類(lèi)。

          方法:
          int read():從輸入流中讀取下一個(gè)字節(jié)并返回,返回為0~255。讀取到末尾返回-1。
          int read(byte[] b):讀取多個(gè)字節(jié),存到數(shù)組b中,并返回。輸入流結(jié)束返回-1。
          int available():返回輸入流中可讀或可跳過(guò)的的字節(jié)數(shù)。
          void close():關(guān)閉輸入流,并釋放資源。

          ######OutPutStream

          為字節(jié)輸出流的根類(lèi),有多個(gè)子類(lèi)。

          方法:
          void write(int b):將指定整數(shù)b的低八位寫(xiě)入輸出流。
          write(byte[] b):將指定數(shù)組b的b.length個(gè)字節(jié)寫(xiě)入輸出流。
          void flush():刷新輸出流,輸出全部緩存內(nèi)容。
          void close():關(guān)閉輸出流,并釋放系統(tǒng)資源。

          ######FileInputStream

          FileInputStream和FileOutputStream用來(lái)實(shí)現(xiàn)文件的讀寫(xiě)。
          構(gòu)造方法:
          FileInputStream(String name):傳入字符串形式的地址。
          FileInputStream(File file):或者傳入一個(gè)File對(duì)象。
          該構(gòu)造方法拋出
          FileNotFountException異常。
          覆蓋了父類(lèi)的read()、available()、close()方法。

          FileOutputStream

          構(gòu)造方法:
          FileOutputStream(String name):傳入字符串形式的文件地址。如果不存在就創(chuàng)建一個(gè)文件;存在就將源文件內(nèi)容
          覆蓋。public FileOutputStream(String name, boolean append):參數(shù)為T(mén)rue時(shí),不覆蓋文件內(nèi)容,在文件末尾寫(xiě)新內(nèi)容。FileOutputStream(File file)。

          BufferedInputStream

          BufferedInputStream和BufferedOutputStream都是緩沖流。使用緩沖流可以減少讀取的次數(shù),提高讀取效率。輸入時(shí),先將數(shù)據(jù)讀取進(jìn)緩沖區(qū),再?gòu)木彌_區(qū)讀取單個(gè)字節(jié);輸出時(shí),先將數(shù)據(jù)一個(gè)一個(gè)寫(xiě)道緩沖區(qū),再將整個(gè)數(shù)組寫(xiě)入是輸出流中。
          構(gòu)造放法:
          BufferedInputStream(InputStream in):傳入一個(gè)輸入流。緩沖區(qū)大小默認(rèn)521字節(jié)。
          BufferedInputStream(InputStream in, int size):手動(dòng)指定緩沖區(qū)大小。

          BufferedOutputStream

          構(gòu)造方法:
          BufferedOutputStream(OutputStream out):默認(rèn)大小521字節(jié)。
          BufferedOutputStream(OutputStream out, int size):指定大小。

          DataInputStream

          DataInputStream和DataOutputStream用于實(shí)現(xiàn)基本數(shù)據(jù)類(lèi)型的輸入輸出。
          構(gòu)造方法:
          DataInputStream(InputStream in)
          方法:(舉例)
          byte readByte():讀取一個(gè)字節(jié)并返回該字節(jié)。
          int readInt():讀取一個(gè)int型整數(shù)并返回。
          String readUTF():讀取UTF-8格式的字符串。

          DataOutputStream

          構(gòu)造方法:
          DataOutputStream(OutputStream out)
          方法:(舉例)
          void writeByte(int v):將v的低8位寫(xiě)入。
          void writeShort(int v):寫(xiě)入16位整數(shù)。
          void writeBytes(String s):將字符串每個(gè)字符的低8位按順序?qū)懭胼敵隽鳌?/span>

          ObjectInputStream

          ObjectInputStream和ObjectOutputStream是實(shí)現(xiàn)對(duì)對(duì)象的輸入輸出,將對(duì)象的狀態(tài)進(jìn)行保存與恢復(fù)。
          **
          注意:要對(duì)對(duì)象進(jìn)行讀寫(xiě)操作,首先該類(lèi)要實(shí)現(xiàn)Serializable接口進(jìn)行序列化。
          ObjectInputStream實(shí)現(xiàn)了DataInput接口,所以可以讀取基本數(shù)據(jù)類(lèi)型。如readint()、readDouble。
          構(gòu)造方法:
          ObjectInputStream(InputStream in)
          方法:(舉例)
          int readInt();
          Object readObejct():使用readObject()方法讀出對(duì)象,其類(lèi)型與順序要與寫(xiě)入時(shí)一致。并且讀取時(shí)是Object類(lèi)型,需要向下轉(zhuǎn)型。

          ObjectOutputStream

          構(gòu)造方法:
          ObjectOutputStream(OutputStream out)
          方法:(舉例)
          void writeInt(int i)
          void writeObject(Object o)


          字符流

          字符流結(jié)構(gòu)圖:


          Reader

          Reader和Writer都是字符流的根類(lèi)。
          方法:
          int read():讀取一個(gè)字符,返回1~65535的int值。末尾返回-1。
          int read(char[] c):讀取多個(gè)字符到數(shù)組c,達(dá)到末尾返回-1。
          void close()

          Writer

          void write(int c):寫(xiě)入一個(gè)字符,將int型的低16位寫(xiě)入。
          void write(char[] c):將字符數(shù)組c中的字符全部寫(xiě)入到輸出流中。
          void flush():刷新。
          void close()

          InputStreamReader

          InputStreamReader和OutputStreamWriter可以實(shí)現(xiàn)字節(jié)流轉(zhuǎn)換位字符流。
          構(gòu)造方法:
          InputStreamReader(InputStream in):傳入字節(jié)輸入流,默認(rèn)底層編碼。
          InputStreamReader(InputStream in, String cs):傳入字節(jié)輸入流,并指定編碼。

          OutputStreamWriter

          構(gòu)造方法:
          OutputStreamWriter(OutputStream out)
          OutputStreamWriter(OutputStream out,String cs)

          BufferedReader

          帶有緩沖區(qū)的字符流。
          構(gòu)造方法:
          BufferedReader(Reader reader)
          BufferedReader(Reader reader,int size)
          方法:
          String readLine():沖輸入流中讀取一行,如果文件末尾返回null

          BufferedWrite

          構(gòu)造方法:
          BufferWriter(Writer out)
          BufferWriter(Writer out,int size)
          方法:
          writer(String str):將字符串str寫(xiě)入輸出流。
          void newLine():根據(jù)系統(tǒng)寫(xiě)一個(gè)行分隔符。

          FileReader

          繼承InputStream,構(gòu)造放法是調(diào)用父類(lèi)(InputStreamReader)的構(gòu)造放法。
          構(gòu)造方法:
          FileReader(String filename)
          FileReader(File file)

          FileWriter

          構(gòu)造方法:
          FileWriter(String filename)
          FielWriter(File file):根據(jù)file對(duì)象創(chuàng)建一個(gè)字符輸出流,若文件不存在創(chuàng)建一個(gè)。存在就對(duì)內(nèi)容覆蓋。
          FileWriter(String filename,boolean b):b為true的時(shí)候,不覆蓋原文件內(nèi)容,再文章末尾添加。


          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品久久久久久久下载地址 | 天天日天天操天天干青青草超碰av | 欧美亚洲日本韩国高清色图 | 久久香蕉精品 | 天堂成人在线 |