Вот как я использую Apache BOMInputStream, он использует блок try-with-resources.Аргумент «false» указывает объекту игнорировать следующие спецификации (мы используем текстовые файлы «без спецификации», ха-ха):
try( BufferedReader br = new BufferedReader(
new InputStreamReader( new BOMInputStream( new FileInputStream(
file), false, ByteOrderMark.UTF_8,
ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE,
ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE ) ) ) )
{
// use br here
} catch( Exception e)
}