Saber/determinar o encoding de um arquivo

Ola pessoal estou tenho que ler um arquivo texto… e gostaria de saber de da pra detectar… o encoding dele.

algo como File.gerCurrentEncoding ou se isso é imposivel pois dependendo da onde vem o arquivo texto grava errado no banco de dados.

Obrigado.

Essa informação não vem no arquivo, então não tem como saber de forma precisa.
Mas dá pra tentar adivinhar a codificação; os navegadores fazem isso o tempo todo.

Sei dessa biblioteca, mas nunca usei: http://code.google.com/p/juniversalchardet/

Segue um link que pode ser útil:

http://blog.publicobject.com/2010/08/handling-byte-order-mark-in-java.html

na verdade necessito ler o arquivo txt nestes 2 formatos…

UTF-8
ISO-8859-1

Alguem tem algum codigo de exemplo por que o objeto file não aceita eu setar o encoding.

Ele da exception quando vai ter UTF- 8 e ISO-8859-1

por que ele pega o default do SO que no caso é CP1252 dai quando vai ler UTF - 8 da pau.

FileReader r =new FileReader(file); r.getEncoding(); reader = new BufferedReader(r);

Tenta ler assim:

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF8"));