Java: cómo determinar la codificación correcta del juego de caracteres de una secuencia

Con referencia al siguiente hilo:Aplicación Java: no se puede leer el archivo codificado iso-8859-1 correctamente

¿Cuál es la mejor manera de determinar mediante programación la codificación correcta del juego de caracteres de un flujo de entrada / archivo?

He intentado usar lo siguiente:

File in =  new File(args[0]);
InputStreamReader r = new InputStreamReader(new FileInputStream(in));
System.out.println(r.getEncoding());

Pero en un archivo que sé que está codificado con ISO8859_1, el código anterior produce ASCII, que no es correcto, y no me permite reproducir correctamente el contenido del archivo en la consola.

Respuestas a la pregunta(15)

Su respuesta a la pregunta