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 ++.
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 […]
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.
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() , […]
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 […]
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 […]
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?
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 […]
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 […]
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 […]