最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ObjectInputStream 和 ObjectOutputStream 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年05月12日 10:05:39   投稿:mrr  
ObjectInputStream 和 ObjectOutputStream 的作用是,對(duì)基本數(shù)據(jù)和對(duì)象進(jìn)行序列化操作支持。本文給大家詳細(xì)介紹了ObjectInputStream 和 ObjectOutputStream的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧

ObjectInputStream 和 ObjectOutputStream 的作用是,對(duì)基本數(shù)據(jù)和對(duì)象進(jìn)行序列化操作支持。

創(chuàng)建“文件輸出流”對(duì)應(yīng)的ObjectOutputStream對(duì)象,該ObjectOutputStream對(duì)象能提供對(duì)“基本數(shù)據(jù)或?qū)ο蟆钡某志么鎯?chǔ);當(dāng)我們需要讀取這些存儲(chǔ)的“基本數(shù)據(jù)或?qū)ο蟆睍r(shí),可以創(chuàng)建“文件輸入流”對(duì)應(yīng)的ObjectInputStream,進(jìn)而讀取出這些“基本數(shù)據(jù)或?qū)ο蟆薄?/p>

注意: 只有支持 java.io.Serializable 或 java.io.Externalizable 接口的對(duì)象才能被ObjectInputStream/ObjectOutputStream所操作!

ObjectOutputStream 函數(shù)列表 

// 構(gòu)造函數(shù)
ObjectOutputStream(OutputStream output)
// public函數(shù)
void   close()
void   defaultWriteObject()
void   flush()
ObjectOutputStream.PutField   putFields()
void   reset()
void   useProtocolVersion(int version)
void   write(int value)
void   write(byte[] buffer, int offset, int length)
void   writeBoolean(boolean value)
void   writeByte(int value)
void   writeBytes(String value)
void   writeChar(int value)
void   writeChars(String value)
void   writeDouble(double value)
void   writeFields()
void   writeFloat(float value)
void   writeInt(int value)
void   writeLong(long value)
final void   writeObject(Object object)
void   writeShort(int value)
void   writeUTF(String value)
void   writeUnshared(Object object)
ObjectInputStream 函數(shù)列表
// 構(gòu)造函數(shù)
ObjectInputStream(InputStream input)
int   available()
void   close()
void   defaultReadObject()
int   read(byte[] buffer, int offset, int length)
int   read()
boolean   readBoolean()
byte   readByte()
char   readChar()
double   readDouble()
ObjectInputStream.GetField   readFields()
float   readFloat()
void   readFully(byte[] dst)
void   readFully(byte[] dst, int offset, int byteCount)
int   readInt()
String   readLine()
long   readLong()
final Object   readObject()
short   readShort()
String   readUTF()
Object   readUnshared()
int   readUnsignedByte()
int   readUnsignedShort()
synchronized void   registerValidation(ObjectInputValidation object, int priority)
int   skipBytes(int length)

演示程序

源碼如下(ObjectStreamTest.java):

/**
 * ObjectInputStream 和 ObjectOutputStream 測(cè)試程序
 *
 * 注意:通過(guò)ObjectInputStream, ObjectOutputStream操作的對(duì)象,必須是實(shí)現(xiàn)了Serializable或Externalizable序列化接口的類的實(shí)例。
 *
 * 
 */
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.ObjectInputStream;  
import java.io.ObjectOutputStream;  
import java.io.Serializable;  
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
public class ObjectStreamTest { 
  private static final String TMP_FILE = "box.tmp";
  public static void main(String[] args) {  
    testWrite();
    testRead();
  }
  /**
   * ObjectOutputStream 測(cè)試函數(shù)
   */
  private static void testWrite() {  
    try {
      ObjectOutputStream out = new ObjectOutputStream(
          new FileOutputStream(TMP_FILE));
      out.writeBoolean(true);
      out.writeByte((byte)65);
      out.writeChar('a');
      out.writeInt(20131015);
      out.writeFloat(3.14F);
      out.writeDouble(1.414D);
      // 寫(xiě)入HashMap對(duì)象
      HashMap map = new HashMap();
      map.put("one", "red");
      map.put("two", "green");
      map.put("three", "blue");
      out.writeObject(map);
      // 寫(xiě)入自定義的Box對(duì)象,Box實(shí)現(xiàn)了Serializable接口
      Box box = new Box("desk", 80, 48);
      out.writeObject(box);
      out.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  /**
   * ObjectInputStream 測(cè)試函數(shù)
   */
  private static void testRead() {
    try {
      ObjectInputStream in = new ObjectInputStream(
          new FileInputStream(TMP_FILE));
      System.out.printf("boolean:%b\n" , in.readBoolean());
      System.out.printf("byte:%d\n" , (in.readByte()&0xff));
      System.out.printf("char:%c\n" , in.readChar());
      System.out.printf("int:%d\n" , in.readInt());
      System.out.printf("float:%f\n" , in.readFloat());
      System.out.printf("double:%f\n" , in.readDouble());
      // 讀取HashMap對(duì)象
      HashMap map = (HashMap) in.readObject();
      Iterator iter = map.entrySet().iterator();
      while (iter.hasNext()) {
        Map.Entry entry = (Map.Entry)iter.next();
        System.out.printf("%-6s -- %s\n" , entry.getKey(), entry.getValue());
      }
      // 讀取Box對(duì)象,Box實(shí)現(xiàn)了Serializable接口
      Box box = (Box) in.readObject();
      System.out.println("box: " + box);
      in.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
class Box implements Serializable {
  private int width;  
  private int height; 
  private String name;  
  public Box(String name, int width, int height) {
    this.name = name;
    this.width = width;
    this.height = height;
  }
  @Override
  public String toString() {
    return "["+name+": ("+width+", "+height+") ]";
  }
}

運(yùn)行結(jié)果:

boolean:true
byte:65
char:a
int:20131015
float:3.140000
double:1.414000
two  -- green
one  -- red
three -- blue
box: [desk: (80, 48) ]

以上所述是小編給大家介紹的ObjectInputStream 和 ObjectOutputStream 的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring Cloud重試機(jī)制與各組件的重試總結(jié)

    Spring Cloud重試機(jī)制與各組件的重試總結(jié)

    這篇文章主要給大家介紹了關(guān)于Spring Cloud中重試機(jī)制與各組件的重試的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • java實(shí)現(xiàn)文件重命名

    java實(shí)現(xiàn)文件重命名

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件重命名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Java報(bào)錯(cuò):FileNotFoundException的解決方案

    Java報(bào)錯(cuò):FileNotFoundException的解決方案

    在Java編程中,FileNotFoundException 是一種常見(jiàn)的受檢異常,通常發(fā)生在試圖打開(kāi)一個(gè)不存在的文件或文件路徑錯(cuò)誤時(shí),本文將詳細(xì)探討FileNotFoundException的成因、解決方案以及預(yù)防措施,幫助開(kāi)發(fā)者理解和避免此類問(wèn)題,需要的朋友可以參考下
    2024-06-06
  • Java關(guān)于IO流的全面介紹

    Java關(guān)于IO流的全面介紹

    下面小編就為大家?guī)?lái)一篇Java關(guān)于IO流的全面介紹。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • Java中switch-case結(jié)構(gòu)的使用方法舉例詳解

    Java中switch-case結(jié)構(gòu)的使用方法舉例詳解

    這篇文章主要介紹了Java中switch-case結(jié)構(gòu)使用的相關(guān)資料,switch-case結(jié)構(gòu)是Java中處理多個(gè)分支條件的一種有效方式,它根據(jù)一個(gè)表達(dá)式的值來(lái)執(zhí)行不同的代碼塊,需要的朋友可以參考下
    2025-01-01
  • SpringBoot根據(jù)目錄結(jié)構(gòu)自動(dòng)生成路由前綴的實(shí)現(xiàn)代碼

    SpringBoot根據(jù)目錄結(jié)構(gòu)自動(dòng)生成路由前綴的實(shí)現(xiàn)代碼

    本文介紹如何根據(jù)目錄結(jié)構(gòu)給RequestMapping添加路由前綴,具體實(shí)現(xiàn)方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08
  • Java中的Lambda表達(dá)式詳解

    Java中的Lambda表達(dá)式詳解

    這篇文章主要介紹了Java中的Lambda表達(dá)式詳解,Lambda 表達(dá)式是 JDK8 的一個(gè)新特性,可以取代大部分的匿名內(nèi)部類,寫(xiě)出更優(yōu)雅的 Java 代碼,尤其在集合的遍歷和其他集合操作中,可以極大地優(yōu)化代碼結(jié)構(gòu),需要的朋友可以參考下
    2024-01-01
  • SpringBoot多數(shù)據(jù)源配置詳細(xì)教程(JdbcTemplate、mybatis)

    SpringBoot多數(shù)據(jù)源配置詳細(xì)教程(JdbcTemplate、mybatis)

    這篇文章主要介紹了SpringBoot多數(shù)據(jù)源配置詳細(xì)教程(JdbcTemplate、mybatis),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • JavaEE中關(guān)于ServletConfig的小結(jié)

    JavaEE中關(guān)于ServletConfig的小結(jié)

    ServletConfig是針對(duì)特定的Servlet的參數(shù)或?qū)傩?。ServletConfig是表示單獨(dú)的Servlet的配置和參數(shù),只是適用于特定的Servlet。從一個(gè)servlet被實(shí)例化后,對(duì)任何客戶端在任何時(shí)候訪問(wèn)有效,但僅對(duì)本servlet有效,一個(gè)servlet的ServletConfig對(duì)象不能被另一個(gè)servlet訪問(wèn)
    2014-10-10
  • SpringBoot數(shù)據(jù)校驗(yàn)功能的實(shí)現(xiàn)

    SpringBoot數(shù)據(jù)校驗(yàn)功能的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot數(shù)據(jù)校驗(yàn)功能的實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

平定县| 南华县| 波密县| 雅安市| 丰宁| 郑州市| 恩施市| 浠水县| 北流市| 潍坊市| 余江县| 龙海市| 吕梁市| 康马县| 安岳县| 微山县| 托克逊县| 南开区| 裕民县| 衢州市| 临夏市| 永仁县| 海阳市| 武功县| 濮阳市| 平安县| 神池县| 肇源县| 沽源县| 吉林市| 株洲市| 大安市| 铜山县| 卢湾区| 舒兰市| 浦城县| 藁城市| 鄂托克旗| 陆丰市| 城固县| 会东县|