UTF-8 байт [] в строку - PullRequest
       31

UTF-8 байт [] в строку

235 голосов
/ 15 декабря 2011

Давайте предположим, что я только что использовал 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;    
}

Ответы [ 11 ]

0 голосов
/ 15 декабря 2011

Это также включает в себя итерации, но это намного лучше, чем объединение строк, поскольку они очень и очень дороги.

public String openFileToString(String fileName)
{
    StringBuilder s = new StringBuilder(_bytes.length);

    for(int i = 0; i < _bytes.length; i++)
    {
        s.append((char)_bytes[i]);
    }

    return s.toString();    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...