WEB开发网
开发学院WEB开发Jsp Serializable对象序列化实例 阅读

Serializable对象序列化实例

 2008-01-05 08:58:34 来源:WEB开发网   
核心提示: import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;p

 

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 = (Card3) obj;
   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;
 }
}


Tags:Serializable 对象 序列化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接