輸入輸出流 IO流的三種分類方式 1.按流的方向分為:輸入流和輸出流 2.按流的數據單位不同分為:字節(jié)流和字符流 3.按流的功能不同分為:節(jié)點流和處理流 (節(jié)點流:從特定的地方讀寫的流類,,例如:磁盤或一塊內存區(qū)域。 處理流:使用節(jié)點流作為輸入或輸出,。過濾流是使用一個已經存在的輸入流或輸出流 連接創(chuàng)建的,。 ) IO流的四大抽象類: 字符流:Reader Writer 字節(jié)流:InputStream OutputStream InputStream 抽象類 三個基本的讀方法 abstract int read() 讀取一個字節(jié)數據,并返回讀到的數據,,如果返回-1,,表示讀到了輸入流的末尾。 int read(byte[] b) 將數據讀入一個字節(jié)數組,,同時返回實際讀取的字節(jié)數,。如果返回-1,表示讀到了輸入流的末尾,。 int read(byte[] b, int off, int len) 將數據讀入一個字節(jié)數組,,同時返回實際讀取的字節(jié)數。如果返回-1,,表示讀到了輸入流的末尾,。off指定在數組b中存放數據的起始偏移位置;len指定讀取的最大字節(jié)數,。 其它方法 long skip(long n) 在輸入流中跳過n個字節(jié),,并返回實際跳過的字節(jié)數。 int available() 返回在不發(fā)生阻塞的情況下,,可讀取的字節(jié)數,。 void close() 關閉輸入流,釋放和這個流相關的系統資源,。 void mark(int readlimit) 在輸入流的當前位置放置一個標記,,如果讀取的字節(jié)數多于readlimit設置的值,,則流忽略這個標記。 void reset() 返回到上一個標記,。 boolean markSupported() 測試當前流是否支持mark和reset方法,。如果支持,返回true,,否則返回false,。 InputStream的作用是標志那些從不同起源地產生輸入的類。這些起源地包括(每個都有一個相關的InputStream子類): (1) 字節(jié)數組(ByteArrayInputStream,,關閉 ByteArrayInputStream 無效,。此類中的方法在關閉此流后仍可被調用 ) (2) String對象(StringBufferInputStream,已過時) (3) 文件(FileInputStream,,用于讀取諸如圖像數據之類的原始字節(jié)流,。要讀取字符流,請考慮使用 FileReader) (4) “管道”,,它的工作原理與現實生活中的管道類似:將一些東西置入一端,,它們在另一端出來。(PipedInputStream) (5) 一系列其他流,,以便我們將其統一收集到單獨一個流內,。(SequenceInputStream) (6)序列化的對象(ObjectInputStream) (6) 其他起源地,如Internet連接等 除此以外,,FilterInputStream也屬于InputStream的一種類型,。子類包括BufferedInputStream、PushbackInputStream,、DataInputStream OutputStream抽象類 三個基本的讀方法 abstract void write(int b) 往輸出流中寫入一個字節(jié),。 void write(byte[] b) 往輸出流中寫入數組b中的所有字節(jié),。 void write(byte[] b, int off, int len) 往輸出流中寫入數組b中從偏移量off開始的len個字節(jié)的數據,。 其它方法 void flush() 刷新輸出流,強制緩沖區(qū)中的輸出字節(jié)被寫出,。 void close() 關閉輸出流,,釋放和這個流相關的系統資源。 Reader |
|