ObjectOutputStream.PutField (Java Platform SE 8 )
Keywords: java.io.ObjectOutputStream.PutField class
Date: 2026-04-17

compact1, compact2, compact3
java.io

## Class ObjectOutputStream.PutField

- java.lang.Object
- - java.io.ObjectOutputStream.PutField

- Enclosing class:
    ObjectOutputStream

      public abstract static class ObjectOutputStream.PutField
      extends Object

  Provide programmatic access to the persistent fields to be written to ObjectOutput.
  Since:
    1.2

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PutField()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `put(String name, boolean val)` Put the value of the named boolean field into the persistent field.
    `abstract void` | `put(String name, byte val)` Put the value of the named byte field into the persistent field.
    `abstract void` | `put(String name, char val)` Put the value of the named char field into the persistent field.
    `abstract void` | `put(String name, double val)` Put the value of the named double field into the persistent field.
    `abstract void` | `put(String name, float val)` Put the value of the named float field into the persistent field.
    `abstract void` | `put(String name, int val)` Put the value of the named int field into the persistent field.
    `abstract void` | `put(String name, long val)` Put the value of the named long field into the persistent field.
    `abstract void` | `put(String name, Object val)` Put the value of the named Object field into the persistent field.
    `abstract void` | `put(String name, short val)` Put the value of the named short field into the persistent field.
    `abstract void` | `write(ObjectOutput out)` Deprecated. This method does not write the values contained by this `PutField` object in a proper format, and may result in corruption of the serialization stream. The correct way to write `PutField` data is by calling the `ObjectOutputStream.writeFields()` method.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PutField

          public PutField()

  - ### Method Detail

    - #### put

          public abstract void put(String name,
                                   boolean val)

      Put the value of the named boolean field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `boolean`

    - #### put

          public abstract void put(String name,
                                   byte val)

      Put the value of the named byte field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `byte`

    - #### put

          public abstract void put(String name,
                                   char val)

      Put the value of the named char field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `char`

    - #### put

          public abstract void put(String name,
                                   short val)

      Put the value of the named short field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `short`

    - #### put

          public abstract void put(String name,
                                   int val)

      Put the value of the named int field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `int`

    - #### put

          public abstract void put(String name,
                                   long val)

      Put the value of the named long field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `long`

    - #### put

          public abstract void put(String name,
                                   float val)

      Put the value of the named float field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `float`

    - #### put

          public abstract void put(String name,
                                   double val)

      Put the value of the named double field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not `double`

    - #### put

          public abstract void put(String name,
                                   Object val)

      Put the value of the named Object field into the persistent field.
      Parameters:
        `name` - the name of the serializable field
        `val` - the value to assign to the field (which may be `null`)
      Throws:
        `IllegalArgumentException` - if `name` does not match the name of a serializable field for the class whose fields are being written, or if the type of the named field is not a reference type

    - #### write

          @Deprecated
          public abstract void write(ObjectOutput out)
                                          throws IOException

      Deprecated. This method does not write the values contained by this `PutField` object in a proper format, and may result in corruption of the serialization stream. The correct way to write `PutField` data is by calling the `ObjectOutputStream.writeFields()` method.
      Write the data and fields to the specified ObjectOutput stream, which must be the same stream that produced this `PutField` object.
      Parameters:
        `out` - the stream to write the data and fields to
      Throws:
        `IOException` - if I/O errors occur while writing to the underlying stream
        `IllegalArgumentException` - if the specified stream is not the same stream that produced this `PutField` object

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.