Давайте предположим, что я только что использовал a BufferedInputStream
для чтения байтов текстового файла в кодировке UTF-8 в байтовый массив. Я знаю, что могу использовать следующую процедуру для преобразования байтов в строку, но есть ли более эффективный / более умный способ сделать это, чем просто перебирать байты и конвертировать каждый из них?
public String openFileToString(byte[] _bytes)
{
String file_string = "";
for(int i = 0; i < _bytes.length; i++)
{
file_string += (char)_bytes[i];
}
return file_string;
}
byte[]
в память и преобразование его через new String(_bytes,"UTF-8")
(или даже с помощью кусочков +=
в строке) является наиболее эффективным. Цепочки InputStreams и Readers могут работать лучше, особенно для больших файлов.
String fileString = new String(_bytes,"UTF-8");
?