java.io Class Hierarchy (Java Platform SE 8 )
Date: 2026-04-17

# Hierarchy For Package java.io

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - java.io.Console (implements java.io.Flushable)
  - java.io.File (implements java.lang.Comparable<T>, java.io.Serializable)
  - java.io.FileDescriptor
  - java.io.InputStream (implements java.io.Closeable)
    - java.io.ByteArrayInputStream
    - java.io.FileInputStream
    - java.io.FilterInputStream
      - java.io.BufferedInputStream
      - java.io.DataInputStream (implements java.io.DataInput)
      - java.io.LineNumberInputStream
      - java.io.PushbackInputStream
    - java.io.ObjectInputStream (implements java.io.ObjectInput, java.io.ObjectStreamConstants)
    - java.io.PipedInputStream
    - java.io.SequenceInputStream
    - java.io.StringBufferInputStream
  - java.io.ObjectInputStream.GetField
  - java.io.ObjectOutputStream.PutField
  - java.io.ObjectStreamClass (implements java.io.Serializable)
  - java.io.ObjectStreamField (implements java.lang.Comparable<T>)
  - java.io.OutputStream (implements java.io.Closeable, java.io.Flushable)
    - java.io.ByteArrayOutputStream
    - java.io.FileOutputStream
    - java.io.FilterOutputStream
      - java.io.BufferedOutputStream
      - java.io.DataOutputStream (implements java.io.DataOutput)
      - java.io.PrintStream (implements java.lang.Appendable, java.io.Closeable)
    - java.io.ObjectOutputStream (implements java.io.ObjectOutput, java.io.ObjectStreamConstants)
    - java.io.PipedOutputStream
  - java.security.Permission (implements java.security.Guard, java.io.Serializable)
    - java.security.BasicPermission (implements java.io.Serializable)
      - java.io.SerializablePermission
    - java.io.FilePermission (implements java.io.Serializable)
  - java.io.RandomAccessFile (implements java.io.Closeable, java.io.DataInput, java.io.DataOutput)
  - java.io.Reader (implements java.io.Closeable, java.lang.Readable)
    - java.io.BufferedReader
      - java.io.LineNumberReader
    - java.io.CharArrayReader
    - java.io.FilterReader
      - java.io.PushbackReader
    - java.io.InputStreamReader
      - java.io.FileReader
    - java.io.PipedReader
    - java.io.StringReader
  - java.io.StreamTokenizer
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Error
      - java.io.IOError
    - java.lang.Exception
      - java.io.IOException
        - java.io.CharConversionException
        - java.io.EOFException
        - java.io.FileNotFoundException
        - java.io.InterruptedIOException
        - java.io.ObjectStreamException
          - java.io.InvalidClassException
          - java.io.InvalidObjectException
          - java.io.NotActiveException
          - java.io.NotSerializableException
          - java.io.OptionalDataException
          - java.io.StreamCorruptedException
          - java.io.WriteAbortedException
        - java.io.SyncFailedException
        - java.io.UnsupportedEncodingException
        - java.io.UTFDataFormatException
      - java.lang.RuntimeException
        - java.io.UncheckedIOException
  - java.io.Writer (implements java.lang.Appendable, java.io.Closeable, java.io.Flushable)
    - java.io.BufferedWriter
    - java.io.CharArrayWriter
    - java.io.FilterWriter
    - java.io.OutputStreamWriter
      - java.io.FileWriter
    - java.io.PipedWriter
    - java.io.PrintWriter
    - java.io.StringWriter

## Interface Hierarchy

- java.lang.AutoCloseable
  - java.io.Closeable
  - java.io.ObjectInput (also extends java.io.DataInput)
  - java.io.ObjectOutput (also extends java.io.DataOutput)
- java.io.DataInput
  - java.io.ObjectInput (also extends java.lang.AutoCloseable)
- java.io.DataOutput
  - java.io.ObjectOutput (also extends java.lang.AutoCloseable)
- java.io.FileFilter
- java.io.FilenameFilter
- java.io.Flushable
- java.io.ObjectInputValidation
- java.io.ObjectStreamConstants
- java.io.Serializable
  - java.io.Externalizable

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.