## Uses of Interface
java.io.Closeable

Packages that use Closeable
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, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).
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.
org.omg.CORBA_2_3.portable: Provides methods for the input and output of value types, and contains other updates to the `org/omg/CORBA/portable` package.
org.omg.CORBA.portable: Provides a portability layer, that is, a set of ORB APIs that makes it possible for code generated by one vendor to run on another vendor's ORB.

### Uses of Closeable in java.io

Classes in java.io that implement Closeable
`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` Convenience class for reading character files.
`class` `FileWriter` Convenience class for writing character files.
`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. As of JDK 1.1, the preferred way to operate on character streams is via the new character-stream classes, which include a class for counting line numbers.
`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. As of JDK 1.1, the preferred way to create a stream from a string is via the `StringReader` class.
`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
`interface` `ModuleReader` Provides access to the content of a module.

### Uses of Closeable in java.net

Classes in java.net that implement Closeable
`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
`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
`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
`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
`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
`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
`class` `LogStream` Deprecated. no replacement

### Uses of Closeable in java.security

Classes in java.security that implement Closeable
`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
`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
`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
`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
`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
`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
`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
`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
`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
`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
`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
`class` `SSLServerSocket` This class extends `ServerSocket`s 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`s and provides secure socket 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
`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
`class` `ProgressMonitorInputStream` Monitors the progress of reading from some InputStream.

### Uses of Closeable in javax.tools

Subinterfaces of Closeable in javax.tools
`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
`class` `ForwardingJavaFileManager<M extends JavaFileManager>` Forwards calls to a given file manager.

### Uses of Closeable in org.omg.CORBA_2_3.portable

Classes in org.omg.CORBA_2_3.portable that implement Closeable
`class` `InputStream` InputStream provides for the reading of all of the mapped IDL types from the stream.
`class` `OutputStream` OutputStream provides interface for writing of all of the mapped IDL type to the stream.

### Uses of Closeable in org.omg.CORBA.portable

Classes in org.omg.CORBA.portable that implement Closeable
`class` `InputStream` InputStream is the Java API for reading IDL types from CDR marshal streams.
`class` `OutputStream` OuputStream is the Java API for writing IDL types to CDR marshal streams.