34得票2回答
确定 ByteBuffer 中的字节数

我有一个ByteBuffer,最多可以容纳(4 + size)bytes(即整数后跟size个字符)。 然而,向ByteBuffer写入的字符数可能小于size。 所以我想知道,有没有办法确定写入 ByteBuffer 中的字符数,而不仅仅是其总大小?limit、position等似乎不是我...

8得票1回答
何时使用Uint8Array、Uint16Array、Uint32Array

我有一个应用程序通过XMLHttpRequest加载用户文本并以二进制格式返回。我知道8、16和32之间的主要区别在于每个元素的字节数,但我不知道何时使用它们。 例如,对于我的应用程序,由于文本文件可能包含任何可能的字符,哪一个是最好的? 我尝试了不同的文件,包括一个包含表情符号的文件,在...

33得票5回答
如何在Java中从文件创建ByteArrayInputStream?

我有一个文件,可以是任何类型的文件,比如 ZIP、RAR、txt、CSV 和 doc 等等。我想要从中创建一个 ByteArrayInputStream。 我使用它通过 Apache Commons Net 的 FTPClient 上传文件到 FTP。 有人知道如何做吗? 例如:Strin...

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

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

7得票4回答
从ByteBuffer中提取Long类型数据(Java/Scala)

我正在按照以下方式构建由两个Long组成的BigInt数: val msb = -1L // some arbitrary long value, can be anything between Long.Min/MaxValue val lsb = 25L // a second arbi...

321得票10回答
将Java位图转换为字节数组

Bitmap bmp = intent.getExtras().get("data"); int size = bmp.getRowBytes() * bmp.getHeight(); ByteBuffer b = ByteBuffer.allocate(size); ...

96得票3回答
Java:将字符串转换为ByteBuffer和从ByteBuffer转换回字符串以及相关问题

我正在使用Java NIO进行套接字连接,并且我的协议是基于文本的,因此在将它们写入SocketChannel之前,我需要能够将字符串转换为ByteBuffer,并将传入的ByteBuffer转换回字符串。目前,我正在使用以下代码:public static Charset charset =...

55得票1回答
"main"线程中的异常:java.lang.NoSuchMethodError:java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer

我有一个如下的方法,长期以来一直在正常运行:private String loadFromFile(){ RandomAccessFile inFile = null; FileChannel inChannel = null; StringBuilder sb = ...

18得票4回答
Java ByteBuffer性能问题

在处理多GB文件时,我注意到了一些奇怪的事情:使用filechannel从文件读取数据到重新使用的allocateDirect分配的ByteBuffer对象比使用MappedByteBuffer慢得多,实际上,它甚至比使用常规读取调用读取到字节数组中还要慢! 我原本期望它(几乎)与从mapp...

14得票2回答
使Java的ByteBuffer线程安全的选项

我有哪些选项可以使ByteBuffer线程安全?已知它不是线程安全的,因为它保存了位置、限制和一些(或全部?)方法依赖于这个内部状态。 对于我的目的来说,如果多个读线程是安全的,就足够了,但是为了其他未来的访问者,我想知道我需要知道什么技巧/诀窍/陷阱才能使它完全线程安全。 我想到的: ...