程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 通過FilterInputStream從InputStream裡讀入數據

通過FilterInputStream從InputStream裡讀入數據

編輯:關於JAVA

FilterInputStream類要完成兩件全然不同的事情。其中,DataInputStream允許我們讀取不同的基本類型數據以及String對象(所有方法都以“read”開頭,比如readByte(),readFloat()等等)。伴隨對應的DataOutputStream,我們可通過數據“流”將基本類型的數據從一個地方搬到另一個地方。這些“地方”是由表10.1總結的那些類決定的。若讀取塊內的數據,並自己進行解析,就不需要用到DataInputStream。但在其他許多情況下,我們一般都想用它對自己讀入的數據進行自動格式化。

剩下的類用於修改InputStream的內部行為方式:是否進行緩沖,是否跟蹤自己讀入的數據行,以及是否能夠推回一個字符等等。後兩種類看起來特別象提供對構建一個編譯器的支持(換言之,添加它們為了支持Java編譯器的構建),所以在常規編程中一般都用不著它們。
也許幾乎每次都要緩沖自己的輸入,無論連接的是哪個IO設備。所以IO庫最明智的做法就是將未緩沖輸入作為一種特殊情況處理,同時將緩沖輸入接納為標准做法。

表10.3 FilterInputStream的類型

Class
 

Function
 

Constructor Arguments
 

How to use it
 

Data-InputStream
 

Used in concert with DataOutputStream, so you can read primitives (int, char, long, etc.) from a stream in a portable fashion.
 

InputStream
 

Contains a full interface to allow you to read primitive types.
 

Buffered-InputStream
 

Use this to prevent a physical read every time you want more data. You’re saying “Use a buffer.”
 

InputStream, with optional buffer size.
 

This doesn’t provide an interface per se, just a requirement that a buffer be used. Attach an interface object.
 

LineNumber-InputStream
 

Keeps track of line numbers in the input stream; you can call getLineNumber() and setLineNumber(int).
 

InputStream
 

This just adds line numbering, so you’ll probably attach an interface object.
 

Pushback-InputStream
 

Has a one byte push-back buffer so that you can push back the last character read.
 

InputStream
 

Generally used in the scanner for a compiler and probably included because the Java compiler needed it. You probably won’t use this.
 


類 功能 構建器參數/如何使用

DataInputStream 與DataOutputStream聯合使用,使自己能以機動方式讀取一個流中的基本數據類型(int,char,long等等) InputStream/包含了一個完整的接口,以便讀取基本數據類型
BufferedInputStream 避免每次想要更多數據時都進行物理性的讀取,告訴它“請先在緩沖區裡找” InputStream,沒有可選的緩沖區大小/本身並不能提供一個接口,只是發出使用緩沖區的要求。要求同一個接口對象連接到一起
LineNumberInputStream 跟蹤輸入流中的行號;可調用getLineNumber()以及setLineNumber(int) 只是添加對數據行編號的能力,所以可能需要同一個真正的接口對象連接
PushbackInputStream 有一個字節的後推緩沖區,以便後推讀入的上一個字符 InputStream/通常由編譯器在掃描器中使用,因為Java編譯器需要它。一般不在自己的代碼中使用.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved