<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FFile_Input_Output%2FObjectOutputStream</id>
		<title>Java/File Input Output/ObjectOutputStream - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FFile_Input_Output%2FObjectOutputStream"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/ObjectOutputStream&amp;action=history"/>
		<updated>2026-04-21T21:24:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/File_Input_Output/ObjectOutputStream&amp;diff=6207&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/ObjectOutputStream&amp;diff=6207&amp;oldid=prev"/>
				<updated>2010-06-01T06:04:10Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:04, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/File_Input_Output/ObjectOutputStream&amp;diff=6206&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/ObjectOutputStream&amp;diff=6206&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A program that serializes and deserializes an Employee array ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectInputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
/**&lt;br /&gt;
 * A program that serializes and deserializes an Employee array.&lt;br /&gt;
 */&lt;br /&gt;
public class SerializeEmployeeTester {&lt;br /&gt;
  public static void main(String[] args) throws IOException,&lt;br /&gt;
      ClassNotFoundException {&lt;br /&gt;
    Employee[] staff = new Employee[2];&lt;br /&gt;
    staff[0] = new Employee(&amp;quot;Fred Flintstone&amp;quot;, 50000);&lt;br /&gt;
    staff[1] = new Employee(&amp;quot;Barney Rubble&amp;quot;, 60000);&lt;br /&gt;
    staff[0].setBuddy(staff[1]);&lt;br /&gt;
    staff[1].setBuddy(staff[0]);&lt;br /&gt;
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(&lt;br /&gt;
        &amp;quot;staff.dat&amp;quot;));&lt;br /&gt;
    out.writeObject(staff);&lt;br /&gt;
    out.close();&lt;br /&gt;
    ObjectInputStream in = new ObjectInputStream(new FileInputStream(&lt;br /&gt;
        &amp;quot;staff.dat&amp;quot;));&lt;br /&gt;
    Employee[] staff2 = (Employee[]) in.readObject();&lt;br /&gt;
    in.close();&lt;br /&gt;
    for (Employee e : staff2)&lt;br /&gt;
      System.out.println(e);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Employee implements Serializable {&lt;br /&gt;
  public Employee(String name, double salary) {&lt;br /&gt;
    this.name = name;&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
    this.buddy = this;&lt;br /&gt;
  }&lt;br /&gt;
  public void setBuddy(Employee buddy) {&lt;br /&gt;
    this.buddy = buddy;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return getClass().getName() + &amp;quot;[name=&amp;quot; + name + &amp;quot;,salary=&amp;quot; + salary&lt;br /&gt;
        + &amp;quot;,buddy=&amp;quot; + buddy.name + &amp;quot;]&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  private String name;&lt;br /&gt;
  private double salary;&lt;br /&gt;
  private Employee buddy;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create ObjectOutputStream out of FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
public class CardWriter {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Card3 card = new Card3(12, Card3.SPADES);&lt;br /&gt;
    System.out.println(&amp;quot;Card to write is: &amp;quot; + card);&lt;br /&gt;
    try {&lt;br /&gt;
      FileOutputStream out = new FileOutputStream(&amp;quot;card.out&amp;quot;);&lt;br /&gt;
      ObjectOutputStream oos = new ObjectOutputStream(out);&lt;br /&gt;
      oos.writeObject(card);&lt;br /&gt;
      oos.flush();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      System.out.println(&amp;quot;Problem serializing: &amp;quot; + e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions are met: -&lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
 * list of conditions and the following disclaimer. - Redistributions in binary&lt;br /&gt;
 * form must reproduce the above copyright notice, this list of conditions and&lt;br /&gt;
 * the following disclaimer in the documentation and/or other materials provided&lt;br /&gt;
 * with the distribution. - Neither the name of Sun Microsystems nor the names&lt;br /&gt;
 * of its contributors may be used to endorse or promote products derived from&lt;br /&gt;
 * this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE&lt;br /&gt;
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE&lt;br /&gt;
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE&lt;br /&gt;
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR&lt;br /&gt;
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF&lt;br /&gt;
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS&lt;br /&gt;
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN&lt;br /&gt;
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)&lt;br /&gt;
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
class Card3 implements Serializable {&lt;br /&gt;
  private int suit = UNASSIGNED;&lt;br /&gt;
  private int number = UNASSIGNED;&lt;br /&gt;
  public final static int UNASSIGNED = -1;&lt;br /&gt;
  public final static int DIAMONDS = 1;&lt;br /&gt;
  public final static int CLUBS = 2;&lt;br /&gt;
  public final static int HEARTS = 3;&lt;br /&gt;
  public final static int SPADES = 4;&lt;br /&gt;
  public final static int ACE = 1;&lt;br /&gt;
  public final static int KING = 13;&lt;br /&gt;
  public Card3(int number, int suit) {&lt;br /&gt;
    if (isValidNumber(number)) {&lt;br /&gt;
      this.number = number;&lt;br /&gt;
    } else {&lt;br /&gt;
      // Error&lt;br /&gt;
    }&lt;br /&gt;
    if (isValidSuit(suit)) {&lt;br /&gt;
      this.suit = suit;&lt;br /&gt;
    } else {&lt;br /&gt;
      // Error&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public int getSuit() {&lt;br /&gt;
    return suit;&lt;br /&gt;
  }&lt;br /&gt;
  public int getNumber() {&lt;br /&gt;
    return number;&lt;br /&gt;
  }&lt;br /&gt;
  public static boolean isValidNumber(int number) {&lt;br /&gt;
    if (number &amp;gt;= ACE &amp;amp;&amp;amp; number &amp;lt;= KING) {&lt;br /&gt;
      return true;&lt;br /&gt;
    } else {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static boolean isValidSuit(int suit) {&lt;br /&gt;
    if (suit &amp;gt;= DIAMONDS &amp;amp;&amp;amp; suit &amp;lt;= SPADES) {&lt;br /&gt;
      return true;&lt;br /&gt;
    } else {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public boolean equals(Object obj) {&lt;br /&gt;
    if (obj instanceof Card3) {&lt;br /&gt;
      Card3 card = (Card3) obj;&lt;br /&gt;
      if (card.getNumber() == this.number &amp;amp;&amp;amp; card.getSuit() == this.suit) {&lt;br /&gt;
        return true;&lt;br /&gt;
      } else {&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    } else {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public int hashCode() {&lt;br /&gt;
    return number * suit;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return numberToString(this.number) + &amp;quot; of &amp;quot; + suitToString(this.suit);&lt;br /&gt;
  }&lt;br /&gt;
  public static String numberToString(int number) {&lt;br /&gt;
    String result = &amp;quot;&amp;quot;;&lt;br /&gt;
    switch (number) {&lt;br /&gt;
    case ACE:&lt;br /&gt;
      result = &amp;quot;Ace&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      result = &amp;quot;Two&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 3:&lt;br /&gt;
      result = &amp;quot;Three&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      result = &amp;quot;Four&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 5:&lt;br /&gt;
      result = &amp;quot;Five&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 6:&lt;br /&gt;
      result = &amp;quot;Six&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 7:&lt;br /&gt;
      result = &amp;quot;Seven&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      result = &amp;quot;Eight&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 9:&lt;br /&gt;
      result = &amp;quot;Nine&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 10:&lt;br /&gt;
      result = &amp;quot;Ten&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 11:&lt;br /&gt;
      result = &amp;quot;Jack&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case 12:&lt;br /&gt;
      result = &amp;quot;Queen&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case KING:&lt;br /&gt;
      result = &amp;quot;King&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case UNASSIGNED:&lt;br /&gt;
      result = &amp;quot;Invalid Number&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;br /&gt;
  public static String suitToString(int suit) {&lt;br /&gt;
    String result = &amp;quot;&amp;quot;;&lt;br /&gt;
    switch (suit) {&lt;br /&gt;
    case DIAMONDS:&lt;br /&gt;
      result = &amp;quot;Diamonds&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case CLUBS:&lt;br /&gt;
      result = &amp;quot;Clubs&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case HEARTS:&lt;br /&gt;
      result = &amp;quot;Hearts&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case SPADES:&lt;br /&gt;
      result = &amp;quot;Spades&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    case UNASSIGNED:&lt;br /&gt;
      result = &amp;quot;Invalid Suit&amp;quot;;&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== implements Externalizable ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.Externalizable;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectInput;&lt;br /&gt;
import java.io.ObjectInputStream;&lt;br /&gt;
import java.io.ObjectOutput;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
class Engine implements Externalizable {&lt;br /&gt;
  private int numCylinders;&lt;br /&gt;
  public Engine() {&lt;br /&gt;
  }&lt;br /&gt;
  Engine(int numCylinders) {&lt;br /&gt;
    this.numCylinders = numCylinders;&lt;br /&gt;
  }&lt;br /&gt;
  int getNumCylinders() {&lt;br /&gt;
    return numCylinders;&lt;br /&gt;
  }&lt;br /&gt;
  public void readExternal(ObjectInput in) throws IOException, ClassCastException {&lt;br /&gt;
    System.out.println(&amp;quot;READ-Engine&amp;quot;);&lt;br /&gt;
    numCylinders = in.readInt();&lt;br /&gt;
  }&lt;br /&gt;
  public void writeExternal(ObjectOutput out) throws IOException {&lt;br /&gt;
    System.out.println(&amp;quot;WRITE-Engine&amp;quot;);&lt;br /&gt;
    out.writeInt(numCylinders);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Car implements Externalizable {&lt;br /&gt;
  private int numTires;&lt;br /&gt;
  private Engine e;&lt;br /&gt;
  private String name;&lt;br /&gt;
  public Car() {&lt;br /&gt;
  }&lt;br /&gt;
  Car(String name, int numTires, Engine e) {&lt;br /&gt;
    this.name = name;&lt;br /&gt;
    this.numTires = numTires;&lt;br /&gt;
    this.e = e;&lt;br /&gt;
  }&lt;br /&gt;
  int getNumTires() {&lt;br /&gt;
    return numTires;&lt;br /&gt;
  }&lt;br /&gt;
  Engine getEngine() {&lt;br /&gt;
    return e;&lt;br /&gt;
  }&lt;br /&gt;
  String getName() {&lt;br /&gt;
    return name;&lt;br /&gt;
  }&lt;br /&gt;
  public void readExternal(ObjectInput in) throws IOException, ClassCastException {&lt;br /&gt;
    System.out.println(&amp;quot;READ-Car&amp;quot;);&lt;br /&gt;
    numTires = in.readInt();&lt;br /&gt;
    name = in.readUTF();&lt;br /&gt;
    try {&lt;br /&gt;
      e = (Engine) in.readObject();&lt;br /&gt;
    } catch (ClassNotFoundException e) {&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void writeExternal(ObjectOutput out) throws IOException {&lt;br /&gt;
    System.out.println(&amp;quot;WRITE-Car&amp;quot;);&lt;br /&gt;
    out.writeInt(numTires);&lt;br /&gt;
    out.writeUTF(name);&lt;br /&gt;
    out.writeObject(e);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class EDemo {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Car c1 = new Car(&amp;quot;Some car&amp;quot;, 4, new Engine(6));&lt;br /&gt;
    ObjectOutputStream oos = null;&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;car.ser&amp;quot;);&lt;br /&gt;
    oos = new ObjectOutputStream(fos);&lt;br /&gt;
    oos.writeObject(c1);&lt;br /&gt;
    ObjectInputStream ois = null;&lt;br /&gt;
    FileInputStream fis = new FileInputStream(&amp;quot;car.ser&amp;quot;);&lt;br /&gt;
    ois = new ObjectInputStream(fis);&lt;br /&gt;
    Car c2 = (Car) ois.readObject();&lt;br /&gt;
    System.out.println(&amp;quot;Number of tires = &amp;quot; + c2.getNumTires());&lt;br /&gt;
    System.out.println(&amp;quot;Number of cylinders = &amp;quot; + c2.getEngine().getNumCylinders());&lt;br /&gt;
    System.out.println(&amp;quot;Name = &amp;quot; + c2.getName());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(StringFileName))); ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.BufferedInputStream;&lt;br /&gt;
import java.io.BufferedOutputStream;&lt;br /&gt;
import java.io.EOFException;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectInputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.math.BigDecimal;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
public class ObjectStreams {&lt;br /&gt;
  static final String dataFile = &amp;quot;invoicedata&amp;quot;;&lt;br /&gt;
  static final BigDecimal[] prices = { new BigDecimal(&amp;quot;19.99&amp;quot;),&lt;br /&gt;
      new BigDecimal(&amp;quot;9.99&amp;quot;), new BigDecimal(&amp;quot;15.99&amp;quot;), new BigDecimal(&amp;quot;3.99&amp;quot;),&lt;br /&gt;
      new BigDecimal(&amp;quot;4.99&amp;quot;) };&lt;br /&gt;
  static final int[] units = { 12, 8, 13, 29, 50 };&lt;br /&gt;
  static final String[] descs = { &amp;quot;Java T-shirt&amp;quot;, &amp;quot;Java Mug&amp;quot;,&lt;br /&gt;
      &amp;quot;Duke Juggling Dolls&amp;quot;, &amp;quot;Java Pin&amp;quot;, &amp;quot;Java Key Chain&amp;quot; };&lt;br /&gt;
  public static void main(String[] args) throws IOException,&lt;br /&gt;
      ClassNotFoundException {&lt;br /&gt;
    ObjectOutputStream out = null;&lt;br /&gt;
    try {&lt;br /&gt;
      out = new ObjectOutputStream(new BufferedOutputStream(&lt;br /&gt;
          new FileOutputStream(dataFile)));&lt;br /&gt;
      out.writeObject(Calendar.getInstance());&lt;br /&gt;
      for (int i = 0; i &amp;lt; prices.length; i++) {&lt;br /&gt;
        out.writeObject(prices[i]);&lt;br /&gt;
        out.writeInt(units[i]);&lt;br /&gt;
        out.writeUTF(descs[i]);&lt;br /&gt;
      }&lt;br /&gt;
    } finally {&lt;br /&gt;
      out.close();&lt;br /&gt;
    }&lt;br /&gt;
    ObjectInputStream in = null;&lt;br /&gt;
    try {&lt;br /&gt;
      in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(&lt;br /&gt;
          dataFile)));&lt;br /&gt;
      Calendar date = null;&lt;br /&gt;
      BigDecimal price;&lt;br /&gt;
      int unit;&lt;br /&gt;
      String desc;&lt;br /&gt;
      BigDecimal total = new BigDecimal(0);&lt;br /&gt;
      date = (Calendar) in.readObject();&lt;br /&gt;
      System.out.format(&amp;quot;On %tA, %&amp;lt;tB %&amp;lt;te, %&amp;lt;tY:%n&amp;quot;, date);&lt;br /&gt;
      try {&lt;br /&gt;
        while (true) {&lt;br /&gt;
          price = (BigDecimal) in.readObject();&lt;br /&gt;
          unit = in.readInt();&lt;br /&gt;
          desc = in.readUTF();&lt;br /&gt;
          System.out.format(&amp;quot;You ordered %d units of %s at $%.2f%n&amp;quot;, unit,&lt;br /&gt;
              desc, price);&lt;br /&gt;
          total = total.add(price.multiply(new BigDecimal(unit)));&lt;br /&gt;
        }&lt;br /&gt;
      } catch (EOFException e) {&lt;br /&gt;
      }&lt;br /&gt;
      System.out.format(&amp;quot;For a TOTAL of: $%.2f%n&amp;quot;, total);&lt;br /&gt;
    } finally {&lt;br /&gt;
      in.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Override writeObject(ObjectOutputStream oos) and readObject(ObjectInputStream ois) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectInputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
class Employee implements Serializable {&lt;br /&gt;
  private String name;&lt;br /&gt;
  private double salary;&lt;br /&gt;
  Employee(String name, double salary) {&lt;br /&gt;
    this.name = name;&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  String getName() {&lt;br /&gt;
    return name;&lt;br /&gt;
  }&lt;br /&gt;
  double getSalary() {&lt;br /&gt;
    return salary;&lt;br /&gt;
  }&lt;br /&gt;
  private void writeObject(ObjectOutputStream oos) throws IOException {&lt;br /&gt;
    oos.defaultWriteObject();&lt;br /&gt;
    System.out.println(&amp;quot;Serializing Employee object\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  private void readObject(ObjectInputStream ois) throws Exception {&lt;br /&gt;
    ois.defaultReadObject();&lt;br /&gt;
    salary += 100;&lt;br /&gt;
    System.out.println(&amp;quot;Deserializing Employee object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Employee e1 = new Employee(&amp;quot;A&amp;quot;, 45000.0);&lt;br /&gt;
    System.out.println(e1.getName() + &amp;quot; &amp;quot; + e1.getSalary());&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;employee.ser&amp;quot;);&lt;br /&gt;
    ObjectOutputStream  oos = new ObjectOutputStream(fos);&lt;br /&gt;
    oos.writeObject(e1);&lt;br /&gt;
    FileInputStream fis = new FileInputStream(&amp;quot;employee.ser&amp;quot;);&lt;br /&gt;
    ObjectInputStream  ois = new ObjectInputStream(fis);&lt;br /&gt;
    Employee e2 = (Employee) ois.readObject();&lt;br /&gt;
    System.out.println(e2.getName() + &amp;quot; &amp;quot; + e2.getSalary());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Returns a byte array from the given object. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
 * Licensed to the Apache Software Foundation (ASF) under one or more&lt;br /&gt;
 * contributor license agreements.  See the NOTICE file distributed with&lt;br /&gt;
 * this work for additional information regarding copyright ownership.&lt;br /&gt;
 * The ASF licenses this file to You under the Apache License, Version 2.0&lt;br /&gt;
 * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with&lt;br /&gt;
 * the License.  You may obtain a copy of the License at&lt;br /&gt;
 * &lt;br /&gt;
 *      http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.ByteArrayOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
  /**&lt;br /&gt;
   * Returns a byte array from the given object.&lt;br /&gt;
   * &lt;br /&gt;
   * @param object&lt;br /&gt;
   *            to convert&lt;br /&gt;
   * @return byte array from the object&lt;br /&gt;
   */&lt;br /&gt;
  public static byte[] objectToBytes(Object object) throws IOException {&lt;br /&gt;
      ByteArrayOutputStream baos = new ByteArrayOutputStream();&lt;br /&gt;
      ObjectOutputStream os = new ObjectOutputStream(baos);&lt;br /&gt;
      os.writeObject(object);&lt;br /&gt;
      return baos.toByteArray();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serializing an Object (JButton) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
import java.io.ByteArrayOutputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.ObjectOutput;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Object object = new JButton(&amp;quot;push me&amp;quot;);&lt;br /&gt;
    ObjectOutput out = new ObjectOutputStream(new FileOutputStream(&amp;quot;filename.ser&amp;quot;));&lt;br /&gt;
    out.writeObject(object);&lt;br /&gt;
    out.close();&lt;br /&gt;
    // Serialize to a byte array&lt;br /&gt;
    ByteArrayOutputStream bos = new ByteArrayOutputStream();&lt;br /&gt;
    out = new ObjectOutputStream(bos);&lt;br /&gt;
    out.writeObject(object);&lt;br /&gt;
    out.close();&lt;br /&gt;
    // Get the bytes of the serialized object&lt;br /&gt;
    byte[] buf = bos.toByteArray();&lt;br /&gt;
    System.out.println(new String(buf));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write different data types with ObjectOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.BufferedInputStream;&lt;br /&gt;
import java.io.BufferedOutputStream;&lt;br /&gt;
import java.io.EOFException;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectInputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.math.BigDecimal;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
public class ObjectStreams {&lt;br /&gt;
  static final String dataFile = &amp;quot;invoicedata&amp;quot;;&lt;br /&gt;
  static final BigDecimal[] prices = { new BigDecimal(&amp;quot;19.99&amp;quot;),&lt;br /&gt;
      new BigDecimal(&amp;quot;9.99&amp;quot;), new BigDecimal(&amp;quot;15.99&amp;quot;), new BigDecimal(&amp;quot;3.99&amp;quot;),&lt;br /&gt;
      new BigDecimal(&amp;quot;4.99&amp;quot;) };&lt;br /&gt;
  static final int[] units = { 12, 8, 13, 29, 50 };&lt;br /&gt;
  static final String[] descs = { &amp;quot;Java T-shirt&amp;quot;, &amp;quot;Java Mug&amp;quot;,&lt;br /&gt;
      &amp;quot;Duke Juggling Dolls&amp;quot;, &amp;quot;Java Pin&amp;quot;, &amp;quot;Java Key Chain&amp;quot; };&lt;br /&gt;
  public static void main(String[] args) throws IOException,&lt;br /&gt;
      ClassNotFoundException {&lt;br /&gt;
    ObjectOutputStream out = null;&lt;br /&gt;
    try {&lt;br /&gt;
      out = new ObjectOutputStream(new BufferedOutputStream(&lt;br /&gt;
          new FileOutputStream(dataFile)));&lt;br /&gt;
      out.writeObject(Calendar.getInstance());&lt;br /&gt;
      for (int i = 0; i &amp;lt; prices.length; i++) {&lt;br /&gt;
        out.writeObject(prices[i]);&lt;br /&gt;
        out.writeInt(units[i]);&lt;br /&gt;
        out.writeUTF(descs[i]);&lt;br /&gt;
      }&lt;br /&gt;
    } finally {&lt;br /&gt;
      out.close();&lt;br /&gt;
    }&lt;br /&gt;
    ObjectInputStream in = null;&lt;br /&gt;
    try {&lt;br /&gt;
      in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(&lt;br /&gt;
          dataFile)));&lt;br /&gt;
      Calendar date = null;&lt;br /&gt;
      BigDecimal price;&lt;br /&gt;
      int unit;&lt;br /&gt;
      String desc;&lt;br /&gt;
      BigDecimal total = new BigDecimal(0);&lt;br /&gt;
      date = (Calendar) in.readObject();&lt;br /&gt;
      System.out.format(&amp;quot;On %tA, %&amp;lt;tB %&amp;lt;te, %&amp;lt;tY:%n&amp;quot;, date);&lt;br /&gt;
      try {&lt;br /&gt;
        while (true) {&lt;br /&gt;
          price = (BigDecimal) in.readObject();&lt;br /&gt;
          unit = in.readInt();&lt;br /&gt;
          desc = in.readUTF();&lt;br /&gt;
          System.out.format(&amp;quot;You ordered %d units of %s at $%.2f%n&amp;quot;, unit,&lt;br /&gt;
              desc, price);&lt;br /&gt;
          total = total.add(price.multiply(new BigDecimal(unit)));&lt;br /&gt;
        }&lt;br /&gt;
      } catch (EOFException e) {&lt;br /&gt;
      }&lt;br /&gt;
      System.out.format(&amp;quot;For a TOTAL of: $%.2f%n&amp;quot;, total);&lt;br /&gt;
    } finally {&lt;br /&gt;
      in.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Writing objects to file with ObjectOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
class Person implements Serializable {&lt;br /&gt;
  private String firstName;&lt;br /&gt;
  private String lastName;&lt;br /&gt;
  private int age;&lt;br /&gt;
  public Person() {&lt;br /&gt;
  }&lt;br /&gt;
  public String getFirstName() {&lt;br /&gt;
    return firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setFirstName(String firstName) {&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public String getLastName() {&lt;br /&gt;
    return lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setLastName(String lastName) {&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public int getAge() {&lt;br /&gt;
    return age;&lt;br /&gt;
  }&lt;br /&gt;
  public void setAge(int age) {&lt;br /&gt;
    this.age = age;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    StringBuffer buffer = new StringBuffer();&lt;br /&gt;
    buffer.append(firstName);&lt;br /&gt;
    buffer.append(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    buffer.append(lastName);&lt;br /&gt;
    buffer.append(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    buffer.append(age);&lt;br /&gt;
    buffer.append(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    return buffer.toString();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    ObjectOutputStream outputStream = null;&lt;br /&gt;
    outputStream = new ObjectOutputStream(new FileOutputStream(&amp;quot;yourFile.dat&amp;quot;));&lt;br /&gt;
    Person person = new Person();&lt;br /&gt;
    person.setFirstName(&amp;quot;A&amp;quot;);&lt;br /&gt;
    person.setLastName(&amp;quot;B&amp;quot;);&lt;br /&gt;
    person.setAge(38);&lt;br /&gt;
    outputStream.writeObject(person);&lt;br /&gt;
    person = new Person();&lt;br /&gt;
    person.setFirstName(&amp;quot;C&amp;quot;);&lt;br /&gt;
    person.setLastName(&amp;quot;D&amp;quot;);&lt;br /&gt;
    person.setAge(22);&lt;br /&gt;
    outputStream.writeObject(person);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>