Articles of bytebuffer

Obtenir le pointeur d’un ByteBuffer Java si JNI

Comment puis-je obtenir un pointeur sur le tableau intérieur d’un ByteBuffer Java? JNIEXPORT void JNICALL test(JNIEnv *env, jobject thiso) { jclass cls = env->FindClass(“java/nio/ByteBuffer”); jmethodID aloc = env->GetStaticMethodID(cls, “allocateDirect”, “(I)Ljava/nio/ByteBuffer;”); jobject obj = env->CallStaticObjectMethod(cls, aloc, 1000); } PS: Je le fais pour partager la mémoire utilisée par Java et C ++.

Envoyer des données de plusieurs façons en fonction de la manière dont vous souhaitez les envoyer

J’ai un tas de clés et de valeurs que je veux envoyer dans notre queue de messagerie en les plaçant dans un tableau d’un octet. Je vais faire un tableau d’octets de toutes les clés et valeurs qui doivent toujours être inférieures à 50K et ensuite envoyer à notre queue de messagerie. Classe de paquet […]

Extraire une chaîne de ReadOnly java.nio.ByteBuffer

Comment extraire une chaîne d’un ByteBuffer en lecture seule? Je ne peux pas utiliser la méthode ByteBuffer.array () car elle lève une exception ReadOnlyException. Dois-je utiliser ByteBuffer.get (arr []) et le copier pour lire les données et créer une chaîne? Cela semble inutile de créer une copie juste pour la lire.

Collection d’octets basée sur ByteBuffer de Java

J’ai besoin d’une implémentation C # de quelque chose de similaire avec ByteBuffer de Java. Méthodes d’intérêt – .remaining () – renvoie le nombre d’éléments entre la position actuelle et la limite. – .array () – .clear () – .put (octet [], int, int) J’ai commencé quelque chose avec MemoryStream .. mais pas clear() , […]

ByteBuffer pourrait-il implémenter DataOutput / DataInput?

Existe-t-il une raison subtile pour laquelle java.nio.ByteBuffer n’implémente pas java.io.DataOutput ou java.io.DataInput , ou les auteurs ont-ils simplement choisi de ne pas le faire? Il semblerait simple de mapper les appels (par exemple, putInt () -> writeInt ()). Le problème fondamental que j’ai (et quelques autres , apparemment) est celui des anciennes classes qui savent […]

Java Circular Byte Buffer qui étend java.nio.ByteBuffer

Toute implémentation de tampon d’octets circulaire Java référencée sur SO et ailleurs ne s’étend pas à java.nio.ByteBuffer, ce qui est nécessaire pour une utilisation avec un SocketChannel. Est-ce que quelqu’un connaît une implémentation open source qui étend ByteBuffer. J’ai essayé d’écrire la mienne, mais je me suis retrouvé coincé quand j’ai réalisé que la position […]

java.nio.BufferUnderflowException lors de la conversion du tableau d’octets en double

J’ai besoin de convertir un bytearray en double. j’utilise double dvalue = ByteBuffer.wrap(value).getDouble(); Mais au moment de l’exécution, j’obtiens une exception BufferUnderflowException Exception in thread “main” java.nio.BufferUnderflowException at java.nio.Buffer.nextGetIndex(Buffer.java:498) at java.nio.HeapByteBuffer.getDouble(HeapByteBuffer.java:508) at Myclass.main(Myclass.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:212) Que dois-je changer ici?

Une règle simple à savoir quand dois-je utiliser des tampons directs avec Java NIO pour les E / S réseau?

Est-ce que quelqu’un avec le don naturel d’expliquer des choses complexes d’une manière simple et directe peut répondre à cette question? Pour obtenir les meilleures performances, quand dois-je utiliser des ByteBuffers directs par rapport à des ByteBuffers normaux lors d’une E / S réseau avec Java NIO? Par exemple: devrais-je lire dans un tampon de […]

Moyen efficace pour convertir io.netty.buffer.ByteBuf en java.nio.ByteBuffer

Je suis tombé sur cette requête: Créez un ByteBuf dans Netty 4.0 sur la conversion d’octet [] en ByteBuf et ByteBuffer en ByteBuf. J’étais curieux de connaître la conversion dans l’autre sens: io.netty.buffer.ByteBuf à java.nio.ByteBuffer et comment le faire efficacement, avec une copie minimale ou nulle? J’ai lu un peu et avec quelques essais et […]

Comment puis-je sous-classer ByteBuffer?

Ainsi, les architectes Java NIO n’ont pas ByteBuffer interface ByteBuffer , mais plutôt une classe ByteBuffer , qui n’est pas une classe finale, mais elle n’a pas de constructeur package-public et ne peut donc pas être sous-classée en dehors de son package. Phooey. : P J’ai un programme qui utilise des tampons d’octets de fichiers […]