## Uses of Interface
java.io.Closeable

- Packages that use Closeable
  Package | Description
  --- | ---
  com.sun.nio.sctp | A Java API for Stream Control Transport Protocol.
  java.io | Provides for system input and output through data streams, serialization and the file system.
  java.lang.module | Classes to support module descriptors and creating configurations of modules by means of resolution and service binding.
  java.net | Provides the classes for implementing networking applications.
  java.nio.channels | Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.
  java.nio.channels.spi | Service-provider classes for the `java.nio.channels` package.
  java.nio.file | Defines interfaces and classes for the Java virtual machine to access files, file attributes, and file systems.
  java.rmi.server | Provides classes and interfaces for supporting the server side of RMI.
  java.security | Provides the classes and interfaces for the security framework.
  java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
  java.util.jar | Provides classes for reading and writing the JAR (Java ARchive) file format, which is based on the standard ZIP file format with an optional manifest file.
  java.util.zip | Provides classes for reading and writing the standard ZIP and GZIP file formats.
  javax.crypto | Provides the classes and interfaces for cryptographic operations.
  javax.imageio.stream | A package of the Java Image I/O API dealing with low-level I/O from files and streams.
  javax.management.loading | Provides the classes which implement advanced dynamic loading.
  javax.management.remote | Interfaces for remote access to JMX MBean servers.
  javax.management.remote.rmi | The RMI connector is a connector for the JMX Remote API that uses RMI to transmit client requests to a remote MBean server.
  javax.net.ssl | Provides classes for the secure socket package.
  javax.sound.sampled | Provides interfaces and classes for capture, processing, and playback of sampled audio data.
  javax.swing | Provides a set of "lightweight" (all-Java language) components that, to the maximum degree possible, work the same on all platforms.
  javax.tools | Provides interfaces for tools which can be invoked from a program, for example, compilers.
  jdk.jfr | This package provides classes to create events and control Flight Recorder.
  jdk.jfr.consumer | This package contains classes for consuming Flight Recorder data.
  jdk.nashorn.api.scripting | This package provides the `javax.script` integration, which is the preferred way to use Nashorn.

- - ### Uses of Closeable in com.sun.nio.sctp

    Classes in com.sun.nio.sctp that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SctpChannel` | A selectable channel for message-oriented connected SCTP sockets.
    `class` | `SctpMultiChannel` | A selectable channel for message-oriented SCTP sockets.
    `class` | `SctpServerChannel` | A selectable channel for message-oriented listening SCTP sockets.

  - ### Uses of Closeable in java.io

    Classes in java.io that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BufferedInputStream` | A `BufferedInputStream` adds functionality to another input stream-namely, the ability to buffer the input and to support the `mark` and `reset` methods.
    `class` | `BufferedOutputStream` | The class implements a buffered output stream.
    `class` | `BufferedReader` | Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.
    `class` | `BufferedWriter` | Writes text to a character-output stream, buffering characters so as to provide for the efficient writing of single characters, arrays, and strings.
    `class` | `ByteArrayInputStream` | A `ByteArrayInputStream` contains an internal buffer that contains bytes that may be read from the stream.
    `class` | `ByteArrayOutputStream` | This class implements an output stream in which the data is written into a byte array.
    `class` | `CharArrayReader` | This class implements a character buffer that can be used as a character-input stream.
    `class` | `CharArrayWriter` | This class implements a character buffer that can be used as an Writer.
    `class` | `DataInputStream` | A data input stream lets an application read primitive Java data types from an underlying input stream in a machine-independent way.
    `class` | `DataOutputStream` | A data output stream lets an application write primitive Java data types to an output stream in a portable way.
    `class` | `FileInputStream` | A `FileInputStream` obtains input bytes from a file in a file system.
    `class` | `FileOutputStream` | A file output stream is an output stream for writing data to a `File` or to a `FileDescriptor`.
    `class` | `FileReader` | Reads text from character files using a default buffer size.
    `class` | `FileWriter` | Writes text to character files using a default buffer size.
    `class` | `FilterInputStream` | A `FilterInputStream` contains some other input stream, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality.
    `class` | `FilterOutputStream` | This class is the superclass of all classes that filter output streams.
    `class` | `FilterReader` | Abstract class for reading filtered character streams.
    `class` | `FilterWriter` | Abstract class for writing filtered character streams.
    `class` | `InputStream` | This abstract class is the superclass of all classes representing an input stream of bytes.
    `class` | `InputStreamReader` | An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified `charset`.
    `class` | `LineNumberInputStream` | Deprecated. This class incorrectly assumes that bytes adequately represent characters.
    `class` | `LineNumberReader` | A buffered character-input stream that keeps track of line numbers.
    `class` | `ObjectInputStream` | An ObjectInputStream deserializes primitive data and objects previously written using an ObjectOutputStream.
    `class` | `ObjectOutputStream` | An ObjectOutputStream writes primitive data types and graphs of Java objects to an OutputStream.
    `class` | `OutputStream` | This abstract class is the superclass of all classes representing an output stream of bytes.
    `class` | `OutputStreamWriter` | An OutputStreamWriter is a bridge from character streams to byte streams: Characters written to it are encoded into bytes using a specified `charset`.
    `class` | `PipedInputStream` | A piped input stream should be connected to a piped output stream; the piped input stream then provides whatever data bytes are written to the piped output stream.
    `class` | `PipedOutputStream` | A piped output stream can be connected to a piped input stream to create a communications pipe.
    `class` | `PipedReader` | Piped character-input streams.
    `class` | `PipedWriter` | Piped character-output streams.
    `class` | `PrintStream` | A `PrintStream` adds functionality to another output stream, namely the ability to print representations of various data values conveniently.
    `class` | `PrintWriter` | Prints formatted representations of objects to a text-output stream.
    `class` | `PushbackInputStream` | A `PushbackInputStream` adds functionality to another input stream, namely the ability to "push back" or "unread" bytes, by storing pushed-back bytes in an internal buffer.
    `class` | `PushbackReader` | A character-stream reader that allows characters to be pushed back into the stream.
    `class` | `RandomAccessFile` | Instances of this class support both reading and writing to a random access file.
    `class` | `Reader` | Abstract class for reading character streams.
    `class` | `SequenceInputStream` | A `SequenceInputStream` represents the logical concatenation of other input streams.
    `class` | `StringBufferInputStream` | Deprecated. This class does not properly convert characters into bytes.
    `class` | `StringReader` | A character stream whose source is a string.
    `class` | `StringWriter` | A character stream that collects its output in a string buffer, which can then be used to construct a string.
    `class` | `Writer` | Abstract class for writing to character streams.

  - ### Uses of Closeable in java.lang.module

    Subinterfaces of Closeable in java.lang.module
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ModuleReader` | Provides access to the content of a module.

  - ### Uses of Closeable in java.net

    Classes in java.net that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DatagramSocket` | This class represents a socket for sending and receiving datagram packets.
    `class` | `MulticastSocket` | The multicast datagram socket class is useful for sending and receiving IP multicast packets.
    `class` | `ServerSocket` | This class implements server sockets.
    `class` | `Socket` | This class implements client sockets (also called just "sockets").
    `class` | `URLClassLoader` | This class loader is used to load classes and resources from a search path of URLs referring to both JAR files and directories.

  - ### Uses of Closeable in java.nio.channels

    Subinterfaces of Closeable in java.nio.channels
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `AsynchronousByteChannel` | An asynchronous channel that can read and write bytes.
    `interface` | `AsynchronousChannel` | A channel that supports asynchronous I/O operations.
    `interface` | `ByteChannel` | A channel that can read and write bytes.
    `interface` | `Channel` | A nexus for I/O operations.
    `interface` | `GatheringByteChannel` | A channel that can write bytes from a sequence of buffers.
    `interface` | `InterruptibleChannel` | A channel that can be asynchronously closed and interrupted.
    `interface` | `MulticastChannel` | A network channel that supports Internet Protocol (IP) multicasting.
    `interface` | `NetworkChannel` | A channel to a network socket.
    `interface` | `ReadableByteChannel` | A channel that can read bytes.
    `interface` | `ScatteringByteChannel` | A channel that can read bytes into a sequence of buffers.
    `interface` | `SeekableByteChannel` | A byte channel that maintains a current position and allows the position to be changed.
    `interface` | `WritableByteChannel` | A channel that can write bytes.

    Classes in java.nio.channels that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AsynchronousFileChannel` | An asynchronous channel for reading, writing, and manipulating a file.
    `class` | `AsynchronousServerSocketChannel` | An asynchronous channel for stream-oriented listening sockets.
    `class` | `AsynchronousSocketChannel` | An asynchronous channel for stream-oriented connecting sockets.
    `class` | `DatagramChannel` | A selectable channel for datagram-oriented sockets.
    `class` | `FileChannel` | A channel for reading, writing, mapping, and manipulating a file.
    `static class` | `Pipe.SinkChannel` | A channel representing the writable end of a `Pipe`.
    `static class` | `Pipe.SourceChannel` | A channel representing the readable end of a `Pipe`.
    `class` | `SelectableChannel` | A channel that can be multiplexed via a `Selector`.
    `class` | `Selector` | A multiplexor of `SelectableChannel` objects.
    `class` | `ServerSocketChannel` | A selectable channel for stream-oriented listening sockets.
    `class` | `SocketChannel` | A selectable channel for stream-oriented connecting sockets.

  - ### Uses of Closeable in java.nio.channels.spi

    Classes in java.nio.channels.spi that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractInterruptibleChannel` | Base implementation class for interruptible channels.
    `class` | `AbstractSelectableChannel` | Base implementation class for selectable channels.
    `class` | `AbstractSelector` | Base implementation class for selectors.

  - ### Uses of Closeable in java.nio.file

    Subinterfaces of Closeable in java.nio.file
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `DirectoryStream<T>` | An object to iterate over the entries in a directory.
    `interface` | `SecureDirectoryStream<T>` | A `DirectoryStream` that defines operations on files that are located relative to an open directory.
    `interface` | `WatchService` | A watch service that watches registered objects for changes and events.

    Classes in java.nio.file that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `FileSystem` | Provides an interface to a file system and is the factory for objects to access files and other objects in the file system.

  - ### Uses of Closeable in java.rmi.server

    Classes in java.rmi.server that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `LogStream` | Deprecated. no replacement

  - ### Uses of Closeable in java.security

    Classes in java.security that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DigestInputStream` | A transparent stream that updates the associated message digest using the bits going through the stream.
    `class` | `DigestOutputStream` | A transparent stream that updates the associated message digest using the bits going through the stream.

  - ### Uses of Closeable in java.util

    Classes in java.util that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Formatter` | An interpreter for printf-style format strings.
    `class` | `Scanner` | A simple text scanner which can parse primitive types and strings using regular expressions.

  - ### Uses of Closeable in java.util.jar

    Classes in java.util.jar that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `JarFile` | The `JarFile` class is used to read the contents of a jar file from any file that can be opened with `java.io.RandomAccessFile`.
    `class` | `JarInputStream` | The `JarInputStream` class is used to read the contents of a JAR file from any input stream.
    `class` | `JarOutputStream` | The `JarOutputStream` class is used to write the contents of a JAR file to any output stream.

  - ### Uses of Closeable in java.util.zip

    Classes in java.util.zip that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CheckedInputStream` | An input stream that also maintains a checksum of the data being read.
    `class` | `CheckedOutputStream` | An output stream that also maintains a checksum of the data being written.
    `class` | `DeflaterInputStream` | Implements an input stream filter for compressing data in the "deflate" compression format.
    `class` | `DeflaterOutputStream` | This class implements an output stream filter for compressing data in the "deflate" compression format.
    `class` | `GZIPInputStream` | This class implements a stream filter for reading compressed data in the GZIP file format.
    `class` | `GZIPOutputStream` | This class implements a stream filter for writing compressed data in the GZIP file format.
    `class` | `InflaterInputStream` | This class implements a stream filter for uncompressing data in the "deflate" compression format.
    `class` | `InflaterOutputStream` | Implements an output stream filter for uncompressing data stored in the "deflate" compression format.
    `class` | `ZipFile` | This class is used to read entries from a zip file.
    `class` | `ZipInputStream` | This class implements an input stream filter for reading files in the ZIP file format.
    `class` | `ZipOutputStream` | This class implements an output stream filter for writing files in the ZIP file format.

  - ### Uses of Closeable in javax.crypto

    Classes in javax.crypto that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CipherInputStream` | A CipherInputStream is composed of an InputStream and a Cipher so that read() methods return data that are read in from the underlying InputStream but have been additionally processed by the Cipher.
    `class` | `CipherOutputStream` | A CipherOutputStream is composed of an OutputStream and a Cipher so that write() methods first process the data before writing them out to the underlying OutputStream.

  - ### Uses of Closeable in javax.imageio.stream

    Subinterfaces of Closeable in javax.imageio.stream
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ImageInputStream` | A seekable input stream interface for use by `ImageReader`s.
    `interface` | `ImageOutputStream` | A seekable output stream interface for use by `ImageWriter`s.

    Classes in javax.imageio.stream that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `FileCacheImageInputStream` | An implementation of `ImageInputStream` that gets its input from a regular `InputStream`.
    `class` | `FileCacheImageOutputStream` | An implementation of `ImageOutputStream` that writes its output to a regular `OutputStream`.
    `class` | `FileImageInputStream` | An implementation of `ImageInputStream` that gets its input from a `File` or `RandomAccessFile`.
    `class` | `FileImageOutputStream` | An implementation of `ImageOutputStream` that writes its output directly to a `File` or `RandomAccessFile`.
    `class` | `ImageInputStreamImpl` | An abstract class implementing the `ImageInputStream` interface.
    `class` | `ImageOutputStreamImpl` | An abstract class implementing the `ImageOutputStream` interface.
    `class` | `MemoryCacheImageInputStream` | An implementation of `ImageInputStream` that gets its input from a regular `InputStream`.
    `class` | `MemoryCacheImageOutputStream` | An implementation of `ImageOutputStream` that writes its output to a regular `OutputStream`.

  - ### Uses of Closeable in javax.management.loading

    Classes in javax.management.loading that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `MLet` | Allows you to instantiate and register one or several MBeans in the MBean server coming from a remote URL.
    `class` | `PrivateMLet` | An MLet that is not added to the `ClassLoaderRepository`.

  - ### Uses of Closeable in javax.management.remote

    Subinterfaces of Closeable in javax.management.remote
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `JMXConnector` | The client end of a JMX API connector.

  - ### Uses of Closeable in javax.management.remote.rmi

    Subinterfaces of Closeable in javax.management.remote.rmi
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `RMIConnection` | RMI object used to forward an MBeanServer request from a client to its MBeanServer implementation on the server side.

    Classes in javax.management.remote.rmi that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `RMIConnectionImpl` | Implementation of the `RMIConnection` interface.
    `class` | `RMIConnectionImpl_Stub` |
    `class` | `RMIConnector` | A connection to a remote RMI connector.
    `class` | `RMIIIOPServerImpl` | Deprecated. This transport is no longer supported.
    `class` | `RMIJRMPServerImpl` | An `RMIServer` object that is exported through JRMP and that creates client connections as RMI objects exported through JRMP.
    `class` | `RMIServerImpl` | An RMI object representing a connector server.

  - ### Uses of Closeable in javax.net.ssl

    Classes in javax.net.ssl that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SSLServerSocket` | This class extends `ServerSocket` and provides secure server sockets using protocols such as the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocols.
    `class` | `SSLSocket` | This class extends `Socket` and provides secure sockets using protocols such as the "Secure Sockets Layer" (SSL) or IETF "Transport Layer Security" (TLS) protocols.

  - ### Uses of Closeable in javax.sound.sampled

    Classes in javax.sound.sampled that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AudioInputStream` | An audio input stream is an input stream with a specified audio format and length.

  - ### Uses of Closeable in javax.swing

    Classes in javax.swing that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ProgressMonitorInputStream` | Monitors the progress of reading from some InputStream.

  - ### Uses of Closeable in javax.tools

    Subinterfaces of Closeable in javax.tools
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `JavaFileManager` | File manager for tools operating on Java™ programming language source and class files.
    `interface` | `StandardJavaFileManager` | File manager based on java.io.File and java.nio.file.Path.

    Classes in javax.tools that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ForwardingJavaFileManager<M extends JavaFileManager>` | Forwards calls to a given file manager.

  - ### Uses of Closeable in jdk.jfr

    Classes in jdk.jfr that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Recording` | Provides means to configure, start, stop and dump recording data to disk.

  - ### Uses of Closeable in jdk.jfr.consumer

    Classes in jdk.jfr.consumer that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `RecordingFile` | A recording file.

  - ### Uses of Closeable in jdk.nashorn.api.scripting

    Classes in jdk.nashorn.api.scripting that implement Closeable
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `URLReader` | Deprecated, for removal: This API element is subject to removal in a future version. Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.