Kodowanie plików tekstowych Java

Mam plik tekstowy i może to być ANSI (z zestawem znaków ISO-8859-2), UTF-8, UCS-2 Big lub Little Endian.

Czy jest jakiś sposób na wykrycie kodowania pliku, aby go poprawnie odczytać?

Czy jest możliwe odczytanie pliku bez kodowania? (i czyta plik tak, jak jest)

(Istnieje kilka programów, które mogą wykrywać i konwertować kodowanie / format plików tekstowych.)