Pregunta

Estoy portando parte del código Java y necesito poder voltear ( javax.nio.Buffer.flip () ).

Estoy utilizando el byte [] para almacenar datos, y quiero voltear esta matriz de bytes, de manera muy parecida a Buffer, ya que creo que debajo de la clase de Buffer también se usa el byte [].

Gracias

¿Fue útil?

Solución

ByteBuffer puede usar un byte [] (crear desde, por ejemplo, ByteBuffer.wrap ) o memoria de pila no Java (creada con ByteBuffer.allocateDirect ). Puede obtener el byte [] subyacente con ByteBuffer.array . Pero llamar a flip y métodos similares en búferes no cambia los datos reales. En cambio, las compensaciones asociadas con los datos se cambian. Por lo tanto, el equivalente con byte sería cambiar las compensaciones que su código está asociando con él.

Otros consejos

No hay un equivalente directo del paquete java.nio en .NET. La IO asíncrona generalmente se maneja con Stream.BeginRead / EndRead , pero en realidad no es el mismo modelo. ¿Podrías decirnos qué estás tratando de hacer?

EDITAR: Ahora ha proporcionado los detalles de bajo nivel de lo que está tratando de hacer, pero como no hay un equivalente real para las clases de nio en .NET, los cualquiera de los dos tiene que escribirlos usted mismo (no es imposible, sino un dolor) o usar un tipo de nivel superior diferente. Es posible que pueda utilizar MemoryStream , por ejemplo, escriba en él y luego vuelva a buscar al principio. Eso es un bit como voltear un buffer de bytes. Sin embargo, no podemos decir si esto es apropiado o no sin más información sobre la meta de nivel superior. Puede haber una forma mucho mejor de hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top