Припустимо, я щойно використав 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");
?