package java.io;

/**
 * A {@code 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).
 */
public interface Closeable extends AutoCloseable {

    /**
     * Closes this stream and releases any system resources associated with it. If the stream is already
     * closed then invoking this method has no effect.
     *
     * @throws IOException
     *         if an I/O error occurs
     */
    void close() throws IOException;
}
