国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中FilterInputStream和FilterOutputStream的用法詳解

2019-11-26 14:10:23
字體:
來源:轉載
供稿:網友

FilterInputStream
FilterInputStream 的作用是用來“封裝其它的輸入流,并為它們提供額外的功能”。它的常用的子類有BufferedInputStream和DataInputStream。
BufferedInputStream的作用就是為“輸入流提供緩沖功能,以及mark()和reset()功能”。
DataInputStream 是用來裝飾其它輸入流,它“允許應用程序以與機器無關方式從底層輸入流中讀取基本 Java 數據類型”。應用程序可以使用DataOutputStream(數據輸出流)寫入由DataInputStream(數據輸入流)讀取的數據。
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輸入流配合使用,“允許應用程序以與機器無關方式從底層輸入流中讀寫基本 Java 數據類型”。
(03) PrintStream 是用來裝飾其它輸出流。它能為其他輸出流添加了功能,使它們能夠方便地打印各種數據值表示形式。
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();  }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昔阳县| 那坡县| 齐河县| 宁南县| 明溪县| 灵丘县| 郯城县| 潞城市| 启东市| 大同县| 德化县| 苍溪县| 南昌市| 高清| 开封县| 西乌珠穆沁旗| 云霄县| 莱芜市| 灌阳县| 新龙县| 海口市| 嘉峪关市| 莲花县| 江永县| 阳曲县| 玛曲县| 红原县| 稻城县| 大新县| 漳平市| 外汇| 平阳县| 荆门市| 玛纳斯县| 南汇区| 丹江口市| 武鸣县| 长子县| 霍邱县| 保德县| 客服|