Closeable (Java SE 14 & JDK 14)
Description: declaration: module: java.base, package: java.io, interface: Closeable
Keywords: java.io.Closeable interface

Module java.base
Package java.io

# Interface Closeable

All Superinterfaces:
  `AutoCloseable`

All Known Subinterfaces:
  `AsynchronousByteChannel`, `AsynchronousChannel`, `ByteChannel`, `Channel`, `DirectoryStream<T>`, `GatheringByteChannel`, `ImageInputStream`, `ImageOutputStream`, `InterruptibleChannel`, `JavaFileManager`, `JMXConnector`, `ModuleReader`, `MulticastChannel`, `NetworkChannel`, `ReadableByteChannel`, `RMIConnection`, `ScatteringByteChannel`, `SecureDirectoryStream<T>`, `SeekableByteChannel`, `StandardJavaFileManager`, `WatchService`, `WritableByteChannel`

All Known Implementing Classes:
  `AbstractInterruptibleChannel`, `AbstractSelectableChannel`, `AbstractSelector`, `AsynchronousFileChannel`, `AsynchronousServerSocketChannel`, `AsynchronousSocketChannel`, `AudioInputStream`, `BufferedInputStream`, `BufferedOutputStream`, `BufferedReader`, `BufferedWriter`, `ByteArrayInputStream`, `ByteArrayOutputStream`, `CharArrayReader`, `CharArrayWriter`, `CheckedInputStream`, `CheckedOutputStream`, `CipherInputStream`, `CipherOutputStream`, `DatagramChannel`, `DatagramSocket`, `DataInputStream`, `DataOutputStream`, `DeflaterInputStream`, `DeflaterOutputStream`, `DigestInputStream`, `DigestOutputStream`, `FileCacheImageInputStream`, `FileCacheImageOutputStream`, `FileChannel`, `FileImageInputStream`, `FileImageOutputStream`, `FileInputStream`, `FileOutputStream`, `FileReader`, `FileSystem`, `FileWriter`, `FilterInputStream`, `FilterOutputStream`, `FilterReader`, `FilterWriter`, `Formatter`, `ForwardingJavaFileManager`, `GZIPInputStream`, `GZIPOutputStream`, `ImageInputStreamImpl`, `ImageOutputStreamImpl`, `InflaterInputStream`, `InflaterOutputStream`, `InputStream`, `InputStreamReader`, `JarFile`, `JarInputStream`, `JarOutputStream`, `LineNumberInputStream`, `LineNumberReader`, `LogStream`, `MemoryCacheImageInputStream`, `MemoryCacheImageOutputStream`, `MLet`, `MulticastSocket`, `ObjectInputStream`, `ObjectOutputStream`, `OutputStream`, `OutputStreamWriter`, `Pipe.SinkChannel`, `Pipe.SourceChannel`, `PipedInputStream`, `PipedOutputStream`, `PipedReader`, `PipedWriter`, `PrintStream`, `PrintWriter`, `PrivateMLet`, `ProgressMonitorInputStream`, `PushbackInputStream`, `PushbackReader`, `RandomAccessFile`, `Reader`, `Recording`, `RecordingFile`, `RMIConnectionImpl`, `RMIConnectionImpl_Stub`, `RMIConnector`, `RMIIIOPServerImpl`, `RMIJRMPServerImpl`, `RMIServerImpl`, `Scanner`, `SctpChannel`, `SctpMultiChannel`, `SctpServerChannel`, `SelectableChannel`, `Selector`, `SequenceInputStream`, `ServerSocket`, `ServerSocketChannel`, `Socket`, `SocketChannel`, `SSLServerSocket`, `SSLSocket`, `StringBufferInputStream`, `StringReader`, `StringWriter`, `URLClassLoader`, `URLReader`, `Writer`, `ZipFile`, `ZipInputStream`, `ZipOutputStream`

    public interface Closeable
    extends AutoCloseable

A `Closeable` is a source or destination of data that can be closed. The close method is invoked to release resources that the object is holding (such as open files).

Since:
  1.5

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `close()` | Closes this stream and releases any system resources associated with it.

- ## Method Details

  - ### close

    void close() throws IOException
    Closes this stream and releases any system resources associated with it. If the stream is already closed then invoking this method has no effect.

    As noted in `AutoCloseable.close()`, cases where the close may fail require careful attention. It is strongly advised to relinquish the underlying resources and to internally mark the `Closeable` as closed, prior to throwing the `IOException`.

    Specified by:
      `close` in interface `AutoCloseable`
    Throws:
      `IOException` - if an I/O error occurs