<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網(wǎng)

      掃一掃關(guān)注

      當(dāng)前位置: 首頁(yè) » 企資快訊 » 匯總 » 正文

      JAVA進(jìn)階知識(shí)學(xué)習(xí)_day09_IO流?am

      放大字體  縮小字體 發(fā)布日期:2021-11-25 02:20:19    作者:付紫希    瀏覽次數(shù):7
      導(dǎo)讀

      一、IO概述1.1 Java中I/O操作主要是指使用java.io包下得內(nèi)容,進(jìn)行輸入、輸出操作。輸入也叫做讀取數(shù)據(jù),輸出也叫做作寫出數(shù)據(jù)。1.2 IO得分類根據(jù)數(shù)據(jù)得流向分為:輸入流和輸出流。輸入流 :把數(shù)據(jù)從其他設(shè)備上讀取

      一、IO概述

      1.1 Java中I/O操作主要是指使用java.io包下得內(nèi)容,進(jìn)行輸入、輸出操作。輸入也叫做讀取數(shù)據(jù),輸出也叫做作寫出數(shù)據(jù)。

      1.2 IO得分類

      根據(jù)數(shù)據(jù)得流向分為:輸入流和輸出流。

      輸入流 :把數(shù)據(jù)從其他設(shè)備上讀取到內(nèi)存中得流。

      輸出流 :把數(shù)據(jù)從內(nèi)存中寫出到其他設(shè)備上得流。

      根據(jù)數(shù)據(jù)得類型分為:字節(jié)流和字符流。

      字節(jié)流 :以字節(jié)為單位,讀寫數(shù)據(jù)得流。

      字符流 :以字符為單位,讀寫數(shù)據(jù)得流。

      1.3 很好父類們

      二、字節(jié)流

      2.1 一切皆為字節(jié):一切文件數(shù)據(jù)(文本、支持、視頻等)在存儲(chǔ)時(shí),都是以二進(jìn)制數(shù)字得形式保存,傳輸時(shí)一樣如此。所以,字節(jié)流可以傳輸任意文件數(shù)據(jù)。在操作流得時(shí)候,我們要時(shí)刻明確,無(wú)論使用什么樣得流對(duì)象,底層傳輸?shù)檬冀K為二進(jìn)制數(shù)據(jù)。

      2.2 字節(jié)輸出流OutputStream:java.io.OutputStream抽象類是表示字節(jié)輸出流得所有類得超類,將指定得字節(jié)信息寫出到目得地。它定義了字節(jié)輸出流得基本共性功能方法。

      2.2.1 常用方法:

      public void close() :關(guān)閉此輸出流并釋放與此流相關(guān)聯(lián)得任何系統(tǒng)資源。

      public void flush() :刷新此輸出流并強(qiáng)制任何緩沖得輸出字節(jié)被寫出。

      public void write(byte[] b) :將b.length字節(jié)從指定得字節(jié)數(shù)組寫入此輸出流。

      public void write(byte[] b, int off, int len) :從指定得字節(jié)數(shù)組寫入len字節(jié),從偏移量 off開(kāi)始輸出到此輸出流。

      public abstract void write(int b) :將指定得字節(jié)輸出流。

      2.3 FileOutputStream類:java.io.FileOutputStream類是文件輸出流,用于將數(shù)據(jù)寫出到文件。

      2.3.1 構(gòu)造方法:

      public FileOutputStream(File file):創(chuàng)建文件輸出流以寫入指定得File對(duì)象表示得文件。

      public FileOutputStream(String name) : 創(chuàng)建文件輸出流以指定得名稱寫入文件。

      注意事項(xiàng):當(dāng)你創(chuàng)建一個(gè)流對(duì)象時(shí),必須傳入一個(gè)文件路徑。該路徑下,如果沒(méi)有這個(gè)文件,會(huì)創(chuàng)建該文件。如果有這個(gè)文件,會(huì)清空這個(gè)文件得數(shù)據(jù)。

      2.3.2 代碼演示:

      2.3.3 寫出數(shù)據(jù)得常用方法:

      write(int b) :每次可以寫出一個(gè)字節(jié)數(shù)據(jù)

      write(byte[] b) :每次可以寫出數(shù)組中得數(shù)據(jù)

      write(byte[] b, int off, int len) ,每次寫出從off索引開(kāi)始,len個(gè)字節(jié)

      2.3.4 寫出數(shù)據(jù)得代碼演示:

      2.4 數(shù)據(jù)追加續(xù)寫

      public FileOutputStream(File file, boolean append) :創(chuàng)建文件輸出流以寫入由指定得 File對(duì)象表示得文件。

      public FileOutputStream(String name, boolean append) : 創(chuàng)建文件輸出流以指定得名稱寫入文件。

      注意: append為true表示追加數(shù)據(jù),false表示清空原有數(shù)據(jù)。 這樣創(chuàng)建得輸出流對(duì)象,就可以指定是否追加續(xù)寫了

      2.5 數(shù)據(jù)寫出換行:Windows系統(tǒng)里,換行符號(hào)是\r\n 。

      2.5.1 使用演示:fos.write("\r\n".getBytes());

      2.6 字節(jié)輸入流InputStream:java.io.InputStream 抽象類是表示字節(jié)輸入流得所有類得超類,可以讀取字節(jié)信息到內(nèi)存中。它定義了字節(jié)輸入流得基本共性功能方法。

      2.6.1 常用方法:

      public void close():關(guān)閉此輸入流并釋放與此流相關(guān)聯(lián)得任何系統(tǒng)資源。

      public abstract int read() :從輸入流讀取數(shù)據(jù)得下一個(gè)字節(jié)。

      public int read(byte[] b) :從輸入流中讀取一些字節(jié)數(shù),并將它們存儲(chǔ)到字節(jié)數(shù)組b中

      2.7 FileInputStream類:java.io.FileInputStream 類是文件輸入流,從文件中讀取字節(jié)。

      2.7.1 構(gòu)造方法:

      FileInputStream(File file) :通過(guò)打開(kāi)與實(shí)際文件得連接來(lái)創(chuàng)建一個(gè)FileInputStream ,該文件由文件系統(tǒng)中得File對(duì)象file命名。

      FileInputStream(String name) :通過(guò)打開(kāi)與實(shí)際文件得連接來(lái)創(chuàng)建一個(gè) FileInputStream ,該文件由文件系統(tǒng)中得路徑名name命名。

      2.7.2 注意事項(xiàng):當(dāng)你創(chuàng)建一個(gè)流對(duì)象時(shí),必須傳入一個(gè)文件路徑。該路徑下,如果沒(méi)有該文件,會(huì)拋出FileNotFoundException。

      2.7.3 讀取字節(jié)數(shù)據(jù):

      1. 讀取字節(jié): read 方法,每次可以讀取一個(gè)字節(jié)得數(shù)據(jù),提升為int類型,讀取到文件末尾,返回 -1

      2. 使用字節(jié)數(shù)組讀取: read(byte[] b) ,每次讀取b得長(zhǎng)度個(gè)字節(jié)到數(shù)組中,返回讀取到得有效字節(jié)個(gè)數(shù),讀取到末尾時(shí),返回 -1

      2.8 字節(jié)流練習(xí):支持復(fù)制

      2.8.1 復(fù)制原理分析:從已有文件中讀取字節(jié),將該字節(jié)寫出到另一個(gè)文件中

      2.8.2 代碼演示:

      三、字符流

      3.1 當(dāng)使用字節(jié)流讀取文感謝件時(shí),可能會(huì)有一個(gè)小問(wèn)題。就是遇到中文字符時(shí),可能不會(huì)顯示完整得字符,那是因?yàn)?一個(gè)中文字符可能占用多個(gè)字節(jié)存儲(chǔ)。所以Java提供一些字符流類,以字符為單位讀寫數(shù)據(jù),專門用于處理文感謝件。

      3.2 字符輸入流Reader:java.io.Reader抽象類是表示用于讀取字符流得所有類得超類,可以讀取字符信息到內(nèi)存中。它定義了字符輸入流得基本共性功能方法。

      3.2.1 常用方法:

      public void close():關(guān)閉此流并釋放與此流相關(guān)聯(lián)得任何系統(tǒng)資源。

      public int read():從輸入流讀取一個(gè)字符。

      public int read(char[] cbuf) : 從輸入流中讀取一些字符,并將它們存儲(chǔ)到字符數(shù)組cbuf中。

      3.3 FileReader類:java.io.FileReader類是讀取字符文件得便利類。構(gòu)造時(shí)使用系統(tǒng)默認(rèn)得字符編碼和默認(rèn)字節(jié)緩沖區(qū)。

      3.3.1 構(gòu)造方法:

      FileReader(File file):創(chuàng)建一個(gè)新得 FileReader ,給定要讀取得File對(duì)象。 FileReader(String fileName):創(chuàng)建一個(gè)新得 FileReader ,給定要讀取得文件得名稱。

      3.3.2 讀取字符數(shù)據(jù):

      1. 讀取字符:read方法,每次可以讀取一個(gè)字符得數(shù)據(jù),提升為int類型,讀取到文件末尾,返回 -1 ,循環(huán)讀取

      2. 使用字符數(shù)組讀取:read(char[] cbuf) ,每次讀取b得長(zhǎng)度個(gè)字符到數(shù)組中,返回讀取到得有效字符個(gè)數(shù), 讀取到末尾時(shí),返回 -1

      3.4 字符輸出流Writer:java.io.Writer 抽象類是表示用于寫出字符流得所有類得超類,將指定得字符信息寫出到目得地。它定義了字節(jié)輸出流得基本共性功能方法。

      3.4.1 構(gòu)造方法:

      void write(int c) 寫入單個(gè)字符。

      void write(char[] cbuf) 寫入字符數(shù)組。

      abstract void write(char[] cbuf, int off, int len) 寫入字符數(shù)組得某一部分,off數(shù)組得開(kāi)始索引,len寫得字符個(gè)數(shù)。

      void write(String str) 寫入字符串。

      void write(String str, int off, int len)寫入字符串得某一部分,off字符串得開(kāi)始索引,len寫得字符個(gè)數(shù)。

      void flush() 刷新該流得緩沖。

      void close() 關(guān)閉此流,但要先刷新它。

      3.5 FileWriter類:java.io.FileWriter類是寫出字符到文件得便利類。構(gòu)造時(shí)使用系統(tǒng)默認(rèn)得字符編碼和默認(rèn)字節(jié)緩沖區(qū)。

      3.5.1 構(gòu)造方法:

      FileWriter(File file) :創(chuàng)建一個(gè)新得 FileWriter,給定要讀取得File對(duì)象。 FileWriter(String fileName) :創(chuàng)建一個(gè)新得 FileWriter,給定要讀取得文件得名稱。

      3.5.2 基本寫出數(shù)據(jù):

      1.寫出字符: write(int b) 方法,每次可以寫出一個(gè)字符數(shù)據(jù)

      2.寫出字符數(shù)組:write(char[] cbuf)

      3.寫出指定長(zhǎng)度得字符數(shù)組:write(char[] cbuf, int off, int len)

      4.寫出字符串:write(String str)

      5.寫出指定長(zhǎng)度得字符串:write(String str, int off, int len)

      3.5.3 注意事項(xiàng):未調(diào)用close方法,數(shù)據(jù)只是保存到了緩沖區(qū),并未寫出到文件中。

      3.5.4 關(guān)閉和刷新:因?yàn)閮?nèi)置緩沖區(qū)得原因,如果不關(guān)閉輸出流,無(wú)法寫出字符到文件中。但是關(guān)閉得流對(duì)象,是無(wú)法繼續(xù)寫出數(shù)據(jù)得。如果我們既想寫出數(shù)據(jù),又想繼續(xù)使用流,就需要 flush 方法了。

      flush:刷新緩沖區(qū),流對(duì)象可以繼續(xù)使用。

      close:先刷新緩沖區(qū),然后通知系統(tǒng)釋放資源。流對(duì)象不可以再被使用了。

      四、IO異常得處理

      4.1 之前得入門練習(xí),我們一直把異常拋出,而實(shí)際開(kāi)發(fā)中并不能這樣處理,建議使用 try...catch...finally代碼塊,處理異常部分

      4.2 JDK9改進(jìn)得代碼演示:

      五、屬性集

      5.1 java.util.Properties繼承于Hashtable,來(lái)表示一個(gè)持久得屬性集。它使用鍵值結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。

      5.2 Properties類

      5.2.1 構(gòu)造方法:

      public Properties() :創(chuàng)建一個(gè)空得屬性列表。

      5.2.2 基本得存儲(chǔ)方法:

      public Object setProperty(String key, String value) : 保存一對(duì)屬性。

      public String getProperty(String key) :使用此屬性列表中指定得鍵搜索屬性值。 public Set stringPropertyNames() :所有鍵得名稱得集合。

      5.2.3 與流相關(guān)得方法:

      public void load(InputStream inStream) : 從字節(jié)輸入流中讀取鍵值對(duì)。

      5.2.3.1 代碼演示:

       
      (文/付紫希)
      免責(zé)聲明
      本文僅代表作發(fā)布者:付紫希個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
       

      Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

      粵ICP備16078936號(hào)

      微信

      關(guān)注
      微信

      微信二維碼

      WAP二維碼

      客服

      聯(lián)系
      客服

      聯(lián)系客服:

      在線QQ: 303377504

      客服電話: 020-82301567

      E_mail郵箱: weilaitui@qq.com

      微信公眾號(hào): weishitui

      客服001 客服002 客服003

      工作時(shí)間:

      周一至周五: 09:00 - 18:00

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 成年美女黄网站色| 中文字幕专区高清在线观看| 欧美又粗又长又爽做受| 黄色毛片在线观看| 欧美国产日韩在线三区| 成人在线观看免费| 国产成人污污网站在线观看| 体育生开房互操| ssss国产在线观看| 男人边吃奶边爱边做视频国产| 好男人www社区| 交换交换乱杂烩系列yy| 久久91这里精品国产2020| 趴在墙上揉捏翘臀求饶h| 日日噜噜噜夜夜爽爽狠狠| 国产1区2区3区在线观看| 中国一级毛片免费看视频| 积积对积积的桶120分钟| 天天射天天色天天干| 亚洲福利视频一区| 香蕉免费看一区二区三区| 欧美va天堂在线影院| 在人间免费观看未删减| 亚洲女成人图区| 欧美性另类高清极品| 日本精品久久久久中文字幕| 国产精品久久久久无码av| 亚洲综合精品伊人久久| 一个人看的视频www在线| 热99re久久精品精品免费| 国产精品欧美在线不卡| 久热综合在线亚洲精品| 草莓视频秋葵视频在线观看ios| 成人深夜视频在线观看| 人妻熟妇乱又伦精品视频| yin荡护士揉捏乱p办公室视频| 熟女老女人的网站| 国产精品亚洲一区二区三区在线 | 欧美jizzhd极品欧美欧美xxxx18动漫 | 精品国产亚洲AV麻豆| 扒开末成年粉嫩的小缝视频|