# 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.