jjzjj

bytebuffer

全部标签

java - 我这样做正确吗?

在我寻求帮助之前,让我告诉你我做了什么:假设我有一个8000Hz的采样率和16位(2字节)的样本大小,在第二个结束时我需要16000字节或8000短。现在我有一个10fps的记录速度然后对于每个fps我需要16000/10=1600字节。所以,故事是这样进行的:声明的变量:byte[]eachPass=newbyte[1600];//usedtostoredatafromTargetDataLineforeachpassbyte[]backingArray=newbyte[16000];//thecompletedataforonesecondByteBufferbuffer=Byte

java - ByteBuffer 可以实现 DataOutput/DataInput 吗?

java.nio.ByteBuffer有什么微妙的原因吗?没有实现java.io.DataOutput或java.io.DataInput,还是作者只是不选择这样做?映射调用似乎很简单(例如putInt()->writeInt())。我(显然还有一些others)的基本问题是较旧的类,它们知道如何使用通用接口(interface)DataInput/DataOutput来序列化/序列化它们自己。我想在不为ByteBuffer编写自定义代理的情况下重用我的自定义序列化。 最佳答案 只需将缓冲区包装在ByteArrayInputStre

java - "Mechanically generated"Java源代码中的java源文件

在翻阅Java源码的过程中,我发现了一些异常的文件,大多与java.nio包中的ByteBuffer有关,源码很乱代码并标记为Thisfilewasmechanicallygenerated:Donotedit!。这些文件还包含大部分空行(有些甚至在javadoc中间(!!?)),大概是为了防止行号发生变化。我还看到了一些java反编译器,例如procyon-decompiler,它可以选择保留行号,但我怀疑情况是否如此,因为在最后的荣誉之前放置空白行不会改变任何内容。这里有一些这样的文件(我在网上找不到它们的任何链接,也没有粘贴它们,因为我不想破坏任何版权,但你可以在src中找到它们

Java:不带 toString 的 StringBuffer 到 byte[]

标题说明了一切。有什么方法可以在不在中间使用String的情况下从StringBuilder转换为byte[]?问题是我正在管理非常大的字符串(数百万个字符),然后我有一个循环在最后添加一个char并获得byte[]。将StringBuffer转换为String的过程使得这个循环非常非常非常慢。有什么办法可以实现吗?提前致谢! 最佳答案 正如许多人已经建议的那样,您可以使用CharBuffer类,但分配一个新的CharBuffer只会让您的问题变得更糟。相反,您可以直接将StringBuilder包装在CharBuffer中,因为S

java - 是否收集了 Java DirectByteBuffer 包装器垃圾?

我知道当一个directbytebuffer被分配时,它不受垃圾收集的影响,但我想知道的是wrapping对象是否被垃圾收集。例如,如果我分配了一个新的DirectByteBufferdbb,然后使用dbb.duplicate()复制(浅复制)它,我将在同一内存块周围有两个包装器。这些包装器是否需要进行垃圾回收?如果我这样做了while(true){DirectByteBufferdbb2=dbb.duplicate();}我最终会OOM吗? 最佳答案 在SunJDK中,java.nio.DirectByteBuffer—由Byte

java - Java 和 C++ 相互对话时的问题

我有一个C++程序,它在磁盘上写入一个二进制文件。然后我使用Java程序读取数字。问题是读取的数字与写入的数字不同。比如说,我用C++写了一个整数4,当用JAVA读取它时(使用readint())得到了67108864。我怀疑它是由于大端或小端。您有任何简单的解决方案来解决这个问题吗? 最佳答案 Java的java.nio缓冲区允许您指定字节顺序。参见http://download.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html特别是order允许您指定字节顺序和getIn

java - 用于时间序列数据的 Cassandra Map Reduce

如何从映射器中访问Cassandra列族?具体来说,如何将map()方法的参数转换回我期望的java类型?Key{logType}->{列名:timeUUID,列值:csvlogline,ttl:1year}感谢@Chris&@rs_atl我成功运行了hadoop作业,这里是完整的代码:packagecom.xxx.hadoop;importjava.io.IOException;importjava.nio.ByteBuffer;importjava.util.Iterator;importjava.util.SortedMap;importorg.apache.cassandra.

Hadoop 为 java.nio.ByteBuffer 的键类型抛出 ClassCastException

我正在为我的集群设置使用“hadoop-0.20.203.0rc1.tar.gz”。每当我设置job.setMapOutputKeyClass(ByteBuffer.class);并运行我得到以下异常的作业:12/01/1315:09:00INFOmapred.JobClient:TaskId:attempt_201201131428_0005_m_000001_2,Status:FAILEDjava.lang.ClassCastException:classjava.nio.ByteBufferatjava.lang.Class.asSubclass(Class.java:3018)

深入理解网络 I/O:FileOutputStream、BufferFileOutputStream、ByteBuffer

🔭嗨,您好👋我是vnjohn,在互联网企业担任Java开发,CSDN优质创作者📖推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代🌲文章所在专栏:网络I/O🤔我当前正在学习微服务领域、云原生领域、消息中间件等架构、原理知识💬向我询问任何您想要的东西,ID:vnjohn🔥觉得博主文章写的还OK,能够帮助到您的,感谢三连支持博客🙏😄代词:vnjohn⚡有趣的事实:音乐、跑步、电影、游戏目录前言FileOutputStream代码straceBufferFileOutputStream源码代码straceFileOutputVSBufferFileOutputB

c - JNI/C 库 : passing byte ptr

我的C库中有一个unsignedchar*,我正在调用一个JNI导出的函数,该函数需要使用此数据设置一个java对象,最好是在byte[]中。但是这个函数会被调用的很频繁,而且要拷贝的数据也挺多的。是否可以使用ByteBuffer并将该ByteBuffer的指针分配给我的unsignedchar*?还是反过来才有效?我什至可以在不复制数据的情况下执行此操作吗?访问它的最佳方式是什么?unsignedchar*中数据的大小是已知的。 最佳答案 考虑到您提供的少量信息,这是一个可能的解决方案。在Java方面,您将:packagecom.