11得票2回答
ByteBuffer可以实现DataOutput/DataInput吗?

为什么java.nio.ByteBuffer没有实现java.io.DataOutput或java.io.DataInput,是因为某些微妙的原因,还是作者们没有选择这么做?将调用(如putInt() -> writeInt())映射似乎很简单。 我(以及一些其他人,显然)面临的基本问...

10得票1回答
Java源代码中的“机械生成”的源文件

我在查看Java源代码时发现了一些不寻常的文件,大多与java.nio包中的ByteBuffer有关,这些文件的源代码非常混乱,并标有“此文件是机械生成的:请勿编辑!”。 这些文件还包含大量的空白行(甚至在javadoc中间也有!?),可能是为了防止行号发生变化。我也看到过一些Java反编译...

10得票1回答
我是否正确地做了这件事?

在我寻求帮助之前,让我告诉你我做了什么: 假设我的采样率为8000Hz,采样大小为16位(2字节),每秒末尾需要16000字节或8000个short。 现在我有10fps的录制速度,那么每个fps我需要16000/10 = 1600字节。 因此,这就是故事的发展过程: 已声明的变量:by...

10得票2回答
通过JNI获取Java ByteBuffer的指针

我该如何获取Java ByteBuffer的内部数组指针?JNIEXPORT void JNICALL test(JNIEnv *env, jobject thiso) { jclass cls = env->FindClass("java/nio/ByteBuffer"); ...

10得票3回答
ByteBuffer、CharBuffer、String 和 Charset

我正在尝试理清字符,根据字符集的字节序列表示以及如何在Java中将其从一种字符集转换为另一种字符集。我遇到了一些困难。 例如, ByteBuffer bybf = ByteBuffer.wrap("Olé".getBytes()); 我的理解是: 在Java中,字符串始终以UTF-...

10得票2回答
将byte数组转换为ushort数组

这是我的问题。请容我稍作解释: 我正在将tiff图像读入缓冲区;我的tiff中的每个像素都由ushort(16位数据,非负)表示。 我的图像大小为64×64=4096。当我的tiff加载到缓冲区中时,缓冲区长度因此为8192(是4096的两倍)。我想这是因为在我的缓冲区中,计算机使用2个字...

10得票5回答
在Java中连接两个字节缓冲区

我如何将两个ByteBuffer连接成一个ByteBuffer? 以下方法不可行: ByteBuffer bb = ByteBuffer.allocate(100); ByteBuffer bb2 = ByteBuffer.allocate(200); bb.alloc...

10得票3回答
从Netty ByteBuf获取字符串

我该如何从Netty的ByteBuf中获取字符串?目前我只能逐个字符地获取。是否有一种直接获取字符串对象的方法? 答案: 我该如何从Netty的ByteBuf中获取字符串?目前我只能逐个字符地获取。是否有一种直接获取字符串对象的方法?// message is of type ByteBu...

9得票4回答
Java循环字节缓冲区,扩展java.nio.ByteBuffer

我看到的所有Java循环字节缓冲区实现都没有扩展java.nio.ByteBuffer,这对我来说是必要的,因为我需要与SocketChannel一起使用。有人知道是否有扩展ByteBuffer的开源实现吗?我尝试编写自己的实现,但当我意识到position和remaining函数是final...

9得票2回答
在Java NIO中进行网络I/O时,何时应该使用直接缓冲区?这里有一个简单的规则。

有没有自然擅长以简单直接的方式解释复杂事物的人可以回答这个问题?在使用Java NIO进行网络I/O时,什么情况下应该使用直接ByteBuffer而不是常规ByteBuffer以获得最佳性能? 例如:我应该读取到堆缓冲区中并从那里解析它,做很多get()(逐字节)操作,还是应该将其读入直...