bytebuffer相关内容

将ByteBuffer转换为字节数组Java

有人知道如何将ByteBuffer转换为byte []数组吗?我需要从我的ByteBuffer中获取字节数组.当我运行bytebuffer.hasArrray()时,它返回否.到目前为止,我看到的每个问题都是将字节数组转换为byteBuffer,但是我需要其他方式. 谢谢. 解决方案 ByteBuffer公开了批量get(byte[])方法,该方法将字节从缓冲区传输到数组中.您需要实例化一 ..
发布时间:2020-07-18 02:38:15 Java开发

如何用垃圾填充字节数组?

我正在使用这个: byte[] buffer = new byte[10240]; 据我了解,这会初始化10kb的缓冲区数组,其中填充了0. 每次用垃圾数据填充(或初始化)该数组的最快方法是什么? 我需要使用该数组> 5000次,并每次用不同的垃圾数据填充它,这就是为什么我正在寻找一种快速的方法来做到这一点.数组大小每次也必须更改. 解决方案 如果您对数据是随机的但对 ..
发布时间:2020-07-17 22:32:44 C#/.NET

在Python和Java中散列原始字节会产生不同的结果

我正在尝试在Java中复制Python 2.7函数的行为,但是通过SHA-256哈希运行(看似)相同的字节序列时,却得到了不同的结果.通过以特定方式(我的Python代码示例的第二行)处理一个非常大的整数(恰好为2048位)来生成字节. 在我的示例中,原始的2048位整数在Python和Java中分别存储为big_int和bigInt,并且两个变量包含相同的数字. 我要复制的Pytho ..
发布时间:2020-06-17 19:32:57 Java开发

以多种方式发送数据,具体取决于您希望如何发送

我有一堆要通过将它们包装在一个字节数组中发送到消息队列的键和值.我将所有必须小于50K的键和值组成一个字节数组,然后发送到我们的消息传递队列. 数据包类: public final class Packet implements Closeable { private static final int MAX_SIZE = 50000; private static final ..

JAVA NIO Bytebuffer.allocateDirect()在int上的大小限制

我正在尝试制作堆外内存缓冲区.我想要很大的缓冲区(例如10GB). 我听说jvm堆有时会因为完整的GC而冻结.因此,我尝试使用java.nio.ByteBuffer进行缓冲. 但是,我遇到了很大的困难! java.nio.ByteBuffer.allocateDirect(int size) 功能仅支持整数.但我想要更大的尺寸.我能做些什么?我该怎么办?请帮助我堆叠溢出专家. ..
发布时间:2020-05-18 00:17:54 Java开发

用InputStream包装ByteBuffer

我有一个采用InputStream并从中读取数据的方法.我也想将此方法与ByteBuffer一起使用.有没有包装ByteBuffer的方法,以便可以将其作为流进行访问? 解决方案 JDK中什么也没有,但是有很多实现,对于ByteBufferInputStream来说,它是google的.基本上,它们包装一个或多个ByteBuffer并跟踪其中的索引,该索引记录已读取的数量.像这样的出现了很 ..
发布时间:2020-05-18 00:14:12 Java开发

将io.netty.buffer.ByteBuf转换为java.nio.ByteBuffer的有效方法

我遇到了以下查询:在Netty中创建ByteBuf 4.0 关于从byte []到ByteBuf的转换以及从ByteBuffer到ByteBuf的转换.我很好奇以另一种方式了解转换: io.netty.buffer.ByteBuf到java.nio.ByteBuffer ,以及如何有效地进行复制(最少/无复制)?我做了一些阅读,并且经过反复试验,发现这种转换效率低下的方式(带有两个副本 ..
发布时间:2020-05-17 03:08:02 Java开发

如何在Java中垃圾收集直接缓冲区

我有一个内存泄漏,我已经隔离到错误配置的直接字节缓冲区. ByteBuffer buff = ByteBuffer.allocateDirect(7777777); GC会收集包含这些缓冲区但不处理缓冲区本身的对象.如果我实例化包含缓冲区的瞬态对象足够多,则会收到以下令人鼓舞的消息: java.lang.OutOfMemoryError: Direct buffer memory ..
发布时间:2020-05-08 20:32:10 Java开发

ByteBuffer getInt()问题

我们正在使用Java ByteBuffer与C ++服务器进行套接字通信。我们知道Java是Big-endian,而Socket通信也是Big-endian。因此,每当字节流接收并由Java放入ByteBuffer时,我们调用getInt()来获取值。没问题,没有转换。 但是如果不知何故我们将ByteBuffer字节顺序专门设置为Little-endian(我的同事实际上已经这样做了), ..
发布时间:2019-01-02 14:33:53 Java开发

如何将OutputStream中的数据放入ByteBuffer?

在Java中,我需要将OutputStream中的内容(我自己将数据填充到该流中)放入ByteBuffer中。如何以简单的方式做到这一点? 解决方案 你可以创建一个 ByteArrayOutputStream 并写入,并使用 toByteArray()将内容提取为 byte [] 。然后 ByteBuffer.wrap(byte [])将使用输出字节数组的内容创建 ByteBuffer 。 ..
发布时间:2019-01-02 11:07:08 Java开发

如何将数据从TCP套接字转换为ByteBuffer

我需要将来自套接字的传入数据传入ByteBuffer,我不知道该怎么做。我是这个领域的新手,因此不确定最好的开始方式。我找到了以下内容,但这不是我想要的,因为它获取了数据,但我需要将所有数据都放在bytebuffer中用于其他目的。 ServerSocket welcomeSocket = new ServerSocket(Integer.parseInt(ibmPort)); whi ..
发布时间:2018-12-29 21:21:38 Java开发

Java - 何时发布直接缓冲区?

因为它不属于jvm堆& gc,什么时候发布?或者,它一直持续到流程终止? 我已经检查过: 如何垃圾收集直接缓冲区java 在Java中取消分配直接缓冲本机内存for JOGL ByteBuffer.allocate()与ByteBuffer.allocateDirect() 但所有答案都很模糊,没有明确回答,是否有明确答案?至少对于 64位Linux 上的 Java 8 。 ..
发布时间:2018-12-28 15:17:13 Java开发

ByteBuffer的翻转方法的目的是什么? (为什么称它为“翻转”?)

为什么ByteBuffer的flip()方法称为“翻转”?什么是“翻转”在这里?根据apidoc,连续两次翻转将无法恢复原始状态,并且多次翻转可能会使 limit()变为零。 我可以“解开”以某种方式重用字节超出限制吗? 我可以将尾部连接到其他一些数据吗? 解决方案 ByteBuffer 的一个相当常见的用例是构造一些数据结构块-by-piece然后将整个结构写入磁盘。 fli ..
发布时间:2018-12-25 20:16:19 Java开发