Vamos supor que eu apenas usei a BufferedInputStream
para ler os bytes de um arquivo de texto codificado em UTF-8 em uma matriz de bytes. Eu sei que posso usar a rotina a seguir para converter os bytes em uma cadeia de caracteres, mas existe uma maneira mais eficiente / inteligente de fazer isso do que apenas percorrer os bytes e converter cada um?
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[]
na memória e convertê-lo via new String(_bytes,"UTF-8")
(ou mesmo por pedaços com +=
a sequência) é o mais eficiente. O encadeamento de InputStreams e Readers pode funcionar melhor, especialmente em arquivos grandes.
String fileString = new String(_bytes,"UTF-8");
?