implementa Closeable ou implementa AutoCloseable

Eu estou no processo de aprender Java e não consigo encontrar nenhuma boa explicação sobre oimplements Closeable e aimplements AutoCloseable interfaces.

Quando eu implementei uminterface Closeable, meu Eclipse IDE criou um métodopublic void close() throws IOException.

Posso fechar o fluxo usandopw.close(); sem a interface. Mas não consigo entender como posso implementar oclose() método usando a interface. E qual é o propósito dessa interface?

Também gostaria de saber: como posso verificar seIOstream estava realmente fechado?

Eu estava usando o código básico abaixo

import java.io.*;

public class IOtest implements AutoCloseable {

public static void main(String[] args) throws IOException  {

    File file = new File("C:\\test.txt");
    PrintWriter pw = new PrintWriter(file);

    System.out.println("file has been created");

    pw.println("file has been created");

}

@Override
public void close() throws IOException {


}

questionAnswers(6)

yourAnswerToTheQuestion