UTF-8字节[]到字符串

问题:

假设我刚刚使用BufferedInputStream将UTF-8编码的文本文件的字节读入字节数组。我知道我可以使用下面的例程来将字节转换成一个字符串,但是有没有更有效/更聪明的方式来做,而不是只是迭代字节和转换每一个?

public String openFileToString(byte[] _bytes)
{
    String file_string = "";

    for(int i = 0; i < _bytes.length; i++)
    {
        file_string += (char)_bytes&#91;i&#93;;
    }

    return file_string;    
}
&#91;/code&#93;

<h4>回答:</h4>
看看<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#String%28byte%5B%5D,%20java.lang.String%29" rel="noreferrer">String</a>的构造函数

String str = new String(bytes, StandardCharsets.UTF_8);

如果你感觉很懒,可以使用Apache Commons IO库将InputStream直接转换成String:

String str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: UTF-8 byte[] to String

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 45 = 47