是否有更优雅的方式从ByteBuffer读取四个字节并将每个字节视为char

时间:2015-09-16 10:03:43

标签: java nio

是否有一种更优雅的方式从ByteBuffer读取四个字节并将每个字节视为一个char(而不是每个字符串作为一个字符)然后这个,我确定必须有更多的succint方式。

public static String read4Chars(ByteBuffer bytes) throws IOException
    {
        StringBuffer sbuf = new StringBuffer(4);
        for (int i = 0; i < 4; i++) {
            char ch = (char) bytes.get();
            sbuf.append(ch);
        }
        return sbuf.toString();
    }

2 个答案:

答案 0 :(得分:1)

优雅是非常主观的。你可以尝试:

public static String read4Chars(ByteBuffer bytes) throws IOException {
    byte[] b = new byte[4];
    bytes.get(b);
    return new String(b, Charset.forName("ASCII"));
}

答案 1 :(得分:0)

如果你不必消费&#34;来自缓冲区的字节,你可以尝试:

public static String read4Chars(ByteBuffer bytes) throws IOException {
    byte[] array = bytes.array();
    return String.valueOf((char) array[0])
        + (char) array[0] + (char) array[0] + (char) array[0];
}