Использовать библиотеку Apache Commons .
Класс: org.apache.commons.io.input.BOMInputStream
Пример использования:
String defaultEncoding = "UTF-8";
InputStream inputStream = new FileInputStream(someFileWithPossibleUtf8Bom);
try {
BOMInputStream bOMInputStream = new BOMInputStream(inputStream);
ByteOrderMark bom = bOMInputStream.getBOM();
String charsetName = bom == null ? defaultEncoding : bom.getCharsetName();
InputStreamReader reader = new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName);
//use reader
} finally {
inputStream.close();
}
аннотация @Autowired используется для автопроводного соединения в платформе Spring. На самом деле автопроводное соединение является процессом на который зависимости от фигуры платформы Spring боба Spring, вместо Вас, разработчика, явно указывая их в файле контекста приложения. Можно аннотировать поля и конструктора, использующего @Autowired, чтобы сказать платформе Spring находить зависимости для Вас.
аннотация @Inject также служит той же цели. аннотация @Inject является частью стандартного JSR-330: Внедрение зависимости для Java, но основное различие между ними состоит в том, что @Inject является стандартной аннотацией для внедрения зависимости, и @Autowired является конкретной пружиной. Таким образом, если Вы не хотите Spring определенные аннотации и хотите пойти со стандартной аннотацией, затем используют @Inject.
Ключевые Факты
следующая статья Baeldung продемонстрирует использование аннотаций, связанных с внедрением зависимости, а именно, @Resource, @Inject, и @Autowired аннотаций.
Проводное соединение в Spring: @Autowired, @Resource и @Inject