001 package util; 002 003 import java.io.Serializable; 004 005 /** 006 * An Object to mark positions in ObjectStreams. 007 * 008 * <p>You can use a StreamMarker to mark the end of a flow of objects of 009 * unknown class and unknown size. On reading you will then know exactly up to 010 * where you must read.<BR> 011 * E.g. to store some objects out of an enumeration and reread them into a 012 * vector you could use code similar to the following: 013 * <HR><PRE> 014 * ... 015 * Enumeration e = q.elements(); 016 * ObjectOutputStream o = new ObjectOutputStream (fileOutputStream); 017 * while (e.hasMoreElements()) 018 * o.writeObject (e.nextElement()); 019 * 020 * // Set the Marker: 021 * o.writeObject (new StreamMarker()); 022 * 023 * ... 024 * 025 * Vector v = new Vector(); 026 * ObjectInputStream oi = new ObjectInputStream (fileInputStream); 027 * Object ob = oi.readObject(); 028 * while (!(ob instanceof StreamMarker)) { 029 * v.addElement (ob); 030 * ob = oi.readObject(); 031 * } 032 * ... 033 * </PRE></p> 034 * 035 * @author Steffen Zschaler 036 * @version 1.0 037 * @since v1.0 038 */ 039 public final class StreamMarker extends Object implements Serializable { 040 041 /** 042 * Create a new StreamMarker. 043 */ 044 public StreamMarker() { 045 super(); 046 } 047 048 /** 049 * Give a string representation of this object. 050 * 051 * @override Never 052 */ 053 public final String toString() { 054 return "[StreamMarker used to mark positions in Streams.]"; 055 } 056 }