java - 是否有更优雅的方法从 ByteBuffer 读取四个字节并将每个字节视为一个字符

标签 java nio

是否有一种更优雅的方法从 ByteBuffer 读取四个字节并将每个字节视为一个字符(而不是每对都视为一个字符),我确信一定有一种更简洁的方法。

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();
    }

最佳答案

优雅是相当主观的。你可以尝试一下:

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

关于java - 是否有更优雅的方法从 ByteBuffer 读取四个字节并将每个字节视为一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32605487/

相关文章:

java - Netbeans 中的 GUI 设计器 [Qt 或 GTK]

java - Java 泛型的 'E' 、 'T' 和 '?' 有什么区别?

Java 编写接受 int : k and print to screen k of "*" 的递归函数

java - (Java 7 NIO.2) 监视服务线程的自定义名称

java - 在 .properties 文件 java 中存储日期

java - 如何将 Jenkins 中的编码设置为 UTF-8

java - 当为映射文件打开 FileOutputStream 时从 java.nio.MappedByteBuffer 读取会导致 "unsafe memory access"错误

java - 在 Java 中的 Windows 上创建没有只读属性的目录

java - Java.NIO 中顺序 channel 写入发送损坏的数据

java - move 文件而不释放锁