服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

serializable对象序列化实例

 

import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.objectinputstream;
import java.io.objectoutputstream;
import java.io.serializable;

public class cardreader {
  public static void main(string[] args) {
    card3 card = new card3(12, card3.spades);
    system.out.println("card to write is: " + card);

    try {
      fileoutputstream out = new fileoutputstream("card.out");
      objectoutputstream oos = new objectoutputstream(out);
      oos.writeobject(card);
      oos.flush();
    catch (exception e) {
      system.out.println("problem serializing: " + e);
    }

    card3 acard = null;

    try {
      fileinputstream in = new fileinputstream("card.out");
      objectinputstream ois = new objectinputstream(in);
      acard = (card3) (ois.readobject());
    catch (exception e) {
      system.out.println("problem serializing: " + e);
    }

    system.out.println("card read is: " + acard);

  }
}

class card3 implements serializable {
  private int suit = unassigned;

  private int number = unassigned;

  public final static int unassigned = -1;

  public final static int diamonds = 1;

  public final static int clubs = 2;

  public final static int hearts = 3;

  public final static int spades = 4;

  public final static int ace = 1;

  public final static int king = 13;

  public card3(int number, int suit) {
    if (isvalidnumber(number)) {
      this.number = number;
    else {
      //error
    }

    if (isvalidsuit(suit)) {
      this.suit = suit;
    else {
      //error
    }
  }

  public int getsuit() {
    return suit;
  }

  public int getnumber() {
    return number;
  }

  public static boolean isvalidnumber(int number) {
    if (number >= ace && number <= king) {
      return true;
    else {
      return false;
    }
  }

  public static boolean isvalidsuit(int suit) {
    if (suit >= diamonds && suit <= spades) {
      return true;
    else {
      return false;
    }
  }

  public boolean equals(object obj) {
    if (obj instanceof card3) {
      card3 card = (card3obj;
      if (card.getnumber() == this.number && card.getsuit() == this.suit) {
        return true;
      else {
        return false;
      }
    else {
      return false;
    }
  }

  public int hashcode() {
    return number * suit;
  }

  public string tostring() {
    return numbertostring(this.number" of " + suittostring(this.suit);
  }

  public static string numbertostring(int number) {
    string result = "";
    switch (number) {
    case ace:
      result = "ace";
      break;
    case 2:
      result = "two";
      break;
    case 3:
      result = "three";
      break;
    case 4:
      result = "four";
      break;
    case 5:
      result = "five";
      break;
    case 6:
      result = "six";
      break;
    case 7:
      result = "seven";
      break;
    case 8:
      result = "eight";
      break;
    case 9:
      result = "nine";
      break;
    case 10:
      result = "ten";
      break;
    case 11:
      result = "jack";
      break;
    case 12:
      result = "queen";
      break;
    case king:
      result = "king";
      break;
    case unassigned:
      result = "invalid number";
      break;
    }
    return result;
  }

  public static string suittostring(int suit) {
    string result = "";
    switch (suit) {
    case diamonds:
      result = "diamonds";
      break;
    case clubs:
      result = "clubs";
      break;
    case hearts:
      result = "hearts";
      break;
    case spades:
      result = "spades";
      break;
    case unassigned:
      result = "invalid suit";
      break;
    }
    return result;
  }
}

扫描关注微信公众号