java序列化,二進制和數據流


類的序列化需要支持Serializable接口,如果類支持序列化,可以通過ObjectOutPutStream和ObjectInputStream將對象和Stream之間進行方便的轉換。

首先來 看一下ObjectOutPutStream和ObjectInputStream的構造函數和常用方法:

public ObjectOutputStream(OutputStream out) throws IOException :參數是輸出流

public ObjectInputStream(InputStream in) throws IOException:參數是輸入流

ObjectOutputStream.writeObject(Object):將對象序列化並寫入到OutputStream中。

ObjectInputStream.readObject():將InputStream讀出對象,這里可能需要強制轉換。

**OutPutStream:首先代表這是個輸出流,前面的**代表該輸出流中存放的數據類型,可以是ByteArray,也可以是file,也可以是Data(代表java中的類對象)。

**InPutStream:首先是一個輸入流,前面的**代表輸入流從那種類型讀取數據,可以是ByteArray,代表將數據讀出到字節數組中。可以是Data,表示將數據讀成Java中的類對象。

字節流包含兩個頂層抽象類:InputStreamOutputStream

1:字節流的兩個頂層類是抽象類,分別是:InputStreamOutputStream

2:每個抽象類都有子類來實現具體的功能,處理不同的設備的輸入和輸  出。

下面簡單介紹字節流的幾個常用子類:::

字節流類

功能簡單介紹

DataInputStream

包含了讀取Java標准數據類型的輸入流

DataOutputStream

包含了寫Java標准數據類型的輸出流

ByteArrayInputStream

從字節數組讀取的輸入流

ByteArrayOutputStream

寫入字節數組的輸出流

FileInputStream

從文件讀入的輸入流

FileOutputStream

寫入文件的輸出流

PrintStream

包含最常見的Print()和Println()的輸出流

PushbackInputStream

返回一個字節到輸入流,主要用於編譯器的實現

PipedInputStream

輸出管道

PipedOutputStream

輸入管道

SequenceInputStream

將n個輸入流聯合起來,一個接一個按一定順序讀取

RandomAccessFile

隨機訪問文件

BufferInputStream

緩沖輸入流

BufferOutputStream

緩沖輸出流

FilterInputStream

實現了InputStream Interface

FilterOutputStream

實現了OutputStream Interface

InputStream

抽象類,描述流的輸入

OutputStream

抽象類,描述流的輸入

抽象類InputStream和OutpurStream定義了實用的方法,其中最主要的是read()和

write()。這兩個方法在InputStreamOutputStream中聲明為抽象方法,由子流類overwrite實現。

2:每個抽象類都有子類來實現具體的功能,處理不同的設備的輸入和輸  出。

下面簡單介紹字節流的幾個常用子類:::

字節流類

功能簡單介紹

DataInputStream

包含了讀取Java標准數據類型的輸入流

DataOutputStream

包含了寫Java標准數據類型的輸出流

ByteArrayInputStream

從字節數組讀取的輸入流

ByteArrayOutputStream

寫入字節數組的輸出流

FileInputStream

從文件讀入的輸入流

FileOutputStream

寫入文件的輸出流

PrintStream

包含最常見的Print()和Println()的輸出流

PushbackInputStream

返回一個字節到輸入流,主要用於編譯器的實現

PipedInputStream

輸出管道

PipedOutputStream

輸入管道

SequenceInputStream

將n個輸入流聯合起來,一個接一個按一定順序讀取

RandomAccessFile

隨機訪問文件

BufferInputStream

緩沖輸入流

BufferOutputStream

緩沖輸出流

FilterInputStream

實現了InputStream Interface

FilterOutputStream

實現了OutputStream Interface

InputStream

抽象類,描述流的輸入

OutputStream

抽象類,描述流的輸入

抽象類InputStream和OutpurStream定義了實用的方法,其中最主要的是read()和

write()。這兩個方法在InputStreamOutputStream中聲明為抽象方法,由子流類overwrite實現。

在網絡傳輸的過程中,是通過socket.getInputStream()和getOutPutStream()來進行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM