1. ホーム

[解決済み】UTF-8 byte[]から文字列への変換

2022-04-02 08:48:19

質問

例えば、今、私が 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;    
}

解決方法は?

のコンストラクタを見てください。 文字列

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

また、手抜きなら Apache Commons IO ライブラリを使って、InputStreamを直接Stringに変換することができます。

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