91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ObjectInputStream 和 ObjectOutputStream 介紹_動力節點Java學院整理

發布時間:2020-09-15 23:40:32 來源:腳本之家 閱讀:124 作者:mrr 欄目:編程語言

ObjectInputStream 和 ObjectOutputStream 的作用是,對基本數據和對象進行序列化操作支持。

創建“文件輸出流”對應的ObjectOutputStream對象,該ObjectOutputStream對象能提供對“基本數據或對象”的持久存儲;當我們需要讀取這些存儲的“基本數據或對象”時,可以創建“文件輸入流”對應的ObjectInputStream,進而讀取出這些“基本數據或對象”。

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

ObjectOutputStream 函數列表 

// 構造函數
ObjectOutputStream(OutputStream output)
// public函數
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 函數列表
// 構造函數
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 測試程序
 *
 * 注意:通過ObjectInputStream, ObjectOutputStream操作的對象,必須是實現了Serializable或Externalizable序列化接口的類的實例。
 *
 * 
 */
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 測試函數
   */
  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);
      // 寫入HashMap對象
      HashMap map = new HashMap();
      map.put("one", "red");
      map.put("two", "green");
      map.put("three", "blue");
      out.writeObject(map);
      // 寫入自定義的Box對象,Box實現了Serializable接口
      Box box = new Box("desk", 80, 48);
      out.writeObject(box);
      out.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  /**
   * ObjectInputStream 測試函數
   */
  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對象
      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對象,Box實現了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+") ]";
  }
}

運行結果:

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 的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敖汉旗| 尤溪县| 施甸县| 河曲县| 颍上县| 文成县| 祁连县| 大邑县| 长泰县| 思茅市| 金乡县| 佛山市| SHOW| 延寿县| 龙陵县| 句容市| 水城县| 静海县| 汝南县| 凯里市| 道真| 密山市| 将乐县| 石城县| 邵东县| 桃源县| 响水县| 高安市| 深州市| 隆尧县| 龙门县| 巴彦淖尔市| 涿州市| 高密市| 苏尼特左旗| 渭南市| 雷州市| 永寿县| 阜阳市| 美姑县| 长乐市|