serialtest.java   [plain text]



/** This is an I/O Class */
class File implements java.io.Serializable {
    /** @serial
	This is a serial field description.
     */
    int a;

    private String[] pathcomponents;
    // Define serializable fields with the ObjectStreamClass
    


        /**


         * @serialField path String 


         *               Path components separated by separator.          


         */


        private static final ObjectStreamField[] serialPersistentFields 
            =  new ObjectStreamField("path", String.class);

    /**


     * @serialData  Default fields followed by separator character.             


     */ 


    private void writeObject(ObjectOutputStream s)
        throws IOException
    {
        ObjectOutputStream.PutField fields = s.putFields();
        StringBuffer str = new StringBuffer();
        for(int i = 0; i < pathcomponents; i++) {
            str.append(separator);
            str.append(pathcomponents[i]);
        }
        fields.put("path", str.toString());
        s.writeFields();
        s.writeChar(separatorChar); // Add the separator character
    }

    private void readObject(ObjectInputStream s)
        throws IOException
    {
        ObjectInputStream.GetField fields = s.readFields();
        String path = (String)fields.get("path", null);
        char sep = s.readChar(); // read the previous separator char


        // parse path into components using the separator
        // and store into pathcomponents array.
    }
}