ObjectOutputStream/ObjectInputStream
這兩個類的代碼,太j8龐大了,單獨拿出來寫了
- ObjectOutputStream可以將java基本數(shù)據(jù)類型或?qū)崿F(xiàn)了序列化接口(Serializable)的對象寫入其它輸出流。如果配合FileOutputStream可以將對象寫入磁盤攒庵,實現(xiàn)對象的持久化存儲;如果配合網(wǎng)絡流哮内,則可以實現(xiàn)對象的網(wǎng)絡傳輸旬盯。
- ObjectOutputStream實現(xiàn)了接口ObjectOutput.而這個接口繼承了DataOutput,相當于對DataOutput進行了擴展.實現(xiàn)了ObjectOutput接口的類,可以向object中寫入數(shù)據(jù).
內(nèi)部類
- Caches:緩存子類相關的數(shù)據(jù)
private static class Caches {
/** cache of subclass security audit results */緩存了子類的安全審查結果
static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits =
new ConcurrentHashMap<>();
/** queue for WeakReferences to audited subclasses */已審查過的子類的弱引用隊列
static final ReferenceQueue<Class<?>> subclassAuditsQueue =
new ReferenceQueue<>();
}
- BlockDataOutputStream:負責將數(shù)據(jù)真正寫入到輸出流中熊昌,它有兩種模式女淑,一種是正常寫入蒲稳,與DataOutputStream沒有什么區(qū)別氮趋,另一種是塊數(shù)據(jù)(Data Block)模式,將數(shù)據(jù)以1024字節(jié)分塊江耀,以塊的形式寫入到輸出流剩胁。