是否有一种更优雅的方式从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();
}
答案 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];
}