流是程序和外界進行數據交換的通道。分為輸入流InputStream和輸出流OutputStream。程序通過輸入流從數據源讀取數據,通過輸出流向目的地寫數據。
在計算機世界里,信息就是數據,信息的交換就是數據流。就好比我們日常生活中的可以看到的水流及看不到的電流都是一種流。
流是指一連串流動的字符(應該是字節),以先進先出的方式發送信息的通道。從傳輸上分為字節流和字符流,字節占8位,字符占16位。從使用上分為節點流和過濾流,其中過濾流包含處理流、包裝流。
下面我們來說一下流的創建,創建一個流,那么內存怎么分配呢?首先是對象分配內存,然后是OS分配資源內存。當這個流用完后,我們要進行的操作的是關閉這個流,Close通知OS釋放資源(其中OS為操作系統)。
輸入流:
InputStream類是所有輸入流的父類,它是一個抽象類,不能被實例化。它提供了一系列和讀取數據有關的方法。
int read(),int read(byte[] b)從數據源讀取數據
void close() 當完成讀操作后,應該關閉輸入流。
常用到的子類,ByteArrayInputStream字節數組輸入流, FileInputStream文件輸入流, StringBufferStream字符串緩沖輸入流, ObjectInputStream對象輸入流, FilterInputStream過濾輸入流,其中過濾輸入流中主要用到的是BufferedInputStream和DataInputStream(實現了DataInput接口,用于讀取基本數據類型,如int 、long、float、double、boolean等)
有輸入流,就有相應的輸出流,也就是說將intput改為output。但是在這里要著重提到的是隨機讀取文件類RandomAccessFile和對象流Object。本人對前者沒有多少嘗試,但對后者我就可以分享我的一點知識。對象流用到了對象的序列化和反序列化,序列化的意思就是把對象寫到一個輸入流中;反序列化是從一個輸入流中讀取一個對象。如果要采用對象輸入輸出流,那么這個對象的類必須實現可序列化接口。將對象也就是對象的成員變量作為整體,寫到流中存儲到文件里邊。或者就是把對象放到數組里邊,將這個對象數組存入到同一個文件中,對其進行操作,在沒有數據庫的情況下,我個人認為這是最好的保存對象信息方法。
該睡覺了,先寫到這里,明天將我所做的對象流代碼寫到上邊,供大家參考交流
posted on 2010-03-17 22:59
張貝貝 閱讀(1615)
評論(1) 編輯 收藏