Frage

ich einen Teil des Java-Code bin Portierung und muß in der Lage sein, leicht zu schlagen (javax.nio.Buffer.flip()).

I Byte bin mit [] Daten zu speichern, und ich mag Flip dieser Byte-Array, ähnlich wie Buffer es tut, wie ich unter Buffer-Klasse glaube verwendet byte [] als auch.

Danke

War es hilfreich?

Lösung

ByteBuffer kann eine byte[] verwenden (Erstellen von, sagen wir, ByteBuffer.wrap) oder Nicht-Java Heap-Speicher (mit ByteBuffer.allocateDirect erstellt). Sie können die zugrunde liegenden byte[] mit ByteBuffer.array erhalten. Aber Aufruf flip und ähnliche Methoden auf Puffer chnage nicht die eigentlichen Daten. Stattdessen Offsets mit den Daten zugeordnet sind, geändert. So entspricht mit byte wäre die Offsets zu ändern, dass der Code mit ihm wird assoziieren.

Andere Tipps

Es gibt keine direkte Entsprechung des java.nio Pakets in .NET. Asynchrone Kommunikation ist in der Regel mit Stream.BeginRead / EndRead behandelt, aber es ist nicht wirklich das gleiche Modell. Können Sie uns sagen, was Sie zu tun versuchen?

EDIT: Sie haben jetzt zur Verfügung gestellt, die Low-Level-Details von dem, was Sie zu tun versuchen, aber da es für die nio Klassen in .NET keine wirklichen äquivalent ist, werden Sie entweder haben sie selbst (nicht unmöglich, aber ein Schmerz) zu schreiben oder einen anderen höhere Ebene Typen verwenden. Möglicherweise kann MemoryStream zum Beispiel verwenden - schreiben hinein, dann an den Anfang suchen zurück. Das ist ein Bit wie ein Byte Puffer Spiegeln. Wir können aber nicht sagen, ob oder nicht, dass ohne weitere Informationen in Bezug auf das übergeordnete Ziel geeignet ist. Es kann eine viel bessere Möglichkeit sein, es zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top