最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中FilterInputStream和FilterOutputStream的用法詳解

 更新時間:2016年06月20日 08:55:45   作者:kuiwu-wang  
這篇文章主要介紹了Java中FilterInputStream和FilterOutputStream的用法詳解,這兩個類分別用于封裝輸入和輸出流,需要的朋友可以參考下

FilterInputStream
FilterInputStream 的作用是用來“封裝其它的輸入流,并為它們提供額外的功能”。它的常用的子類有BufferedInputStream和DataInputStream。
BufferedInputStream的作用就是為“輸入流提供緩沖功能,以及mark()和reset()功能”。
DataInputStream 是用來裝飾其它輸入流,它“允許應(yīng)用程序以與機器無關(guān)方式從底層輸入流中讀取基本 Java 數(shù)據(jù)類型”。應(yīng)用程序可以使用DataOutputStream(數(shù)據(jù)輸出流)寫入由DataInputStream(數(shù)據(jù)輸入流)讀取的數(shù)據(jù)。
FilterInputStream 源碼(基于jdk1.7.40):

package java.io;
public class FilterInputStream extends InputStream {
  protected volatile InputStream in;

  protected FilterInputStream(InputStream in) {
    this.in = in;
  }

  public int read() throws IOException {
    return in.read();
  }

  public int read(byte b[]) throws IOException {
    return read(b, 0, b.length);
  }

  public int read(byte b[], int off, int len) throws IOException {
    return in.read(b, off, len);
  }

  public long skip(long n) throws IOException {
    return in.skip(n);
  }

  public int available() throws IOException {
    return in.available();
  }

  public void close() throws IOException {
    in.close();
  }

  public synchronized void mark(int readlimit) {
    in.mark(readlimit);
  }

  public synchronized void reset() throws IOException {
    in.reset();
  }

  public boolean markSupported() {
    return in.markSupported();
  }
}

FilterOutputStream 
FilterOutputStream 的作用是用來“封裝其它的輸出流,并為它們提供額外的功能”。它主要包括BufferedOutputStream, DataOutputStream和PrintStream。
(01) BufferedOutputStream的作用就是為“輸出流提供緩沖功能”。
(02) DataOutputStream 是用來裝飾其它輸出流,將DataOutputStream和DataInputStream輸入流配合使用,“允許應(yīng)用程序以與機器無關(guān)方式從底層輸入流中讀寫基本 Java 數(shù)據(jù)類型”。
(03) PrintStream 是用來裝飾其它輸出流。它能為其他輸出流添加了功能,使它們能夠方便地打印各種數(shù)據(jù)值表示形式。
FilterOutputStream 源碼(基于jdk1.7.40):

package java.io;

public class FilterOutputStream extends OutputStream {
  protected OutputStream out;

  public FilterOutputStream(OutputStream out) {
    this.out = out;
  }

  public void write(int b) throws IOException {
    out.write(b);
  }

  public void write(byte b[]) throws IOException {
    write(b, 0, b.length);
  }

  public void write(byte b[], int off, int len) throws IOException {
    if ((off | len | (b.length - (len + off)) | (off + len)) < 0)
      throw new IndexOutOfBoundsException();

    for (int i = 0 ; i < len ; i++) {
      write(b[off + i]);
    }
  }

  public void flush() throws IOException {
    out.flush();
  }

  public void close() throws IOException {
    try {
     flush();
    } catch (IOException ignored) {
    }
    out.close();
  }
}

相關(guān)文章

  • 基于StringBuilder類中的重要方法(介紹)

    基于StringBuilder類中的重要方法(介紹)

    下面小編就為大家?guī)硪黄赟tringBuilder類中的重要方法(介紹)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Spring條件注解沒生效該如何解決

    Spring條件注解沒生效該如何解決

    條件注解相信各位小伙伴都用過,Spring?中的多環(huán)境配置?profile?底層就是通過條件注解來實現(xiàn)的,下面小編就來為大家介紹一下當(dāng)Spring條件注解沒生效時該如何解決,感興趣的可以了解下
    2023-09-09
  • Spring Boot2集成AOPLog來記錄接口訪問日志

    Spring Boot2集成AOPLog來記錄接口訪問日志

    這篇文章主要介紹了Spring Boot2集成AOPLog來記錄接口訪問日志,日志是一個Web項目中必不可少的部分,借助它我們可以做許多事情,比如問題排查、訪問統(tǒng)計、監(jiān)控告警等,需要的朋友可以參考下
    2019-06-06
  • Java Swing實現(xiàn)讓窗體居中顯示的方法示例

    Java Swing實現(xiàn)讓窗體居中顯示的方法示例

    這篇文章主要介紹了Java Swing實現(xiàn)讓窗體居中顯示的方法,結(jié)合實例形式分析了swing使用setBounds方法控制窗口布局的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • Spring Boot打包war jar 部署tomcat

    Spring Boot打包war jar 部署tomcat

    這篇文章主要介紹了Spring Boot打包war jar 部署tomcat的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • 基于Maven骨架創(chuàng)建JavaWeb項目過程解析

    基于Maven骨架創(chuàng)建JavaWeb項目過程解析

    這篇文章主要介紹了基于Maven骨架創(chuàng)建JavaWeb項目過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot如何讀取mock數(shù)據(jù)(高效調(diào)試接口)

    SpringBoot如何讀取mock數(shù)據(jù)(高效調(diào)試接口)

    本文介紹如何在SpringBoot項目中讀取resources目錄下的mock數(shù)據(jù)文件,以便高效調(diào)試接口,在 Spring Boot 項目中,通常會將靜態(tài)資源或配置文件放在 src/main/resources 目錄下,下面通過實例給大家詳細(xì)介紹,感興趣的朋友一起看看吧
    2024-12-12
  • Spring Boot 2.4版本前后的分組配置變化及對多環(huán)境配置結(jié)構(gòu)的影響(推薦)

    Spring Boot 2.4版本前后的分組配置變化及對多環(huán)境配置結(jié)構(gòu)的影響(推薦)

    這篇文章主要介紹了Spring Boot 2.4版本前后的分組配置變化及對多環(huán)境配置結(jié)構(gòu)的影響,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • java 后端生成pdf模板合并單元格表格的案例

    java 后端生成pdf模板合并單元格表格的案例

    這篇文章主要介紹了java 后端生成pdf模板合并單元格表格的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù)

    spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù)

    這篇文章主要介紹了spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

沛县| 扶余县| 安义县| 南城县| 顺平县| 洛扎县| 和顺县| 定安县| 得荣县| 郸城县| 綦江县| 宿州市| 方城县| 海林市| 平远县| 农安县| 石楼县| 邯郸市| 桐城市| 仪征市| 武川县| 三都| 乾安县| 团风县| 广汉市| 特克斯县| 扶风县| 宣恩县| 泉州市| 三亚市| 曲靖市| 江山市| 保亭| 怀仁县| 临泽县| 饶阳县| 南丰县| 三亚市| 台中县| 临江市| 岳普湖县|