2016-11-12 6 views
0

Я могу это сделать, но этот вопрос больше узнать о том, что является лучшим способом для достижения этого.Прочитать файл в кодировке UTF-8 и преобразовать в байтовый массив

я могу сделать следующее, чтобы получить файл в забуференном читателя

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); 

Каков наилучший способ продолжить после этого?

+0

Само требование не имеет смысла. Посмотрите: UTF-8 является ** кодировкой **. I.E .: Параметр для преобразования символов в байты (и наоборот). Каждое преобразование должно иметь надлежащую кодировку. Поэтому, если вы читаете файл (который всегда представляет собой последовательность ** байтов **) с определенной кодировкой, это потому, что он должен быть преобразован в ** chars **. ОК. Затем, если он должен быть снова преобразован в байты, необходимо использовать ту же самую кодировку, поэтому ... она становится чистой ** do + undo **. Вы можете прочитать файл как байты и забыть о кодировке. –

ответ

2

Лучший подход часто самый простой:

Path path = Paths.get("path/to/file"); 
byte[] data = Files.readAllBytes(path); 

PS: Если у вас есть File объект вместо строкового представления пути, то просто конвертировать File в Path в:

Path path = file.toPath() 
+0

Первое требование - прочитать файл в формате UTF, а затем продолжить обработку –

+0

UTF - это не формат, а схема кодирования. Если ваш файл уже закодирован в кодировке UTF-8, вам просто нужно его прочитать. Больше ничего –