¿Hay alguna razón sutil por la cual java.nio.ByteBuffer no implementa java.io.DataOutput o java.io.DataInput, o los autores simplemente no optaron por hacer esto? Parecería sencillo mapear las llamadas (por ejemplo, putInt() -> writeInt()).¿Podría ByteBuffer implementar DataOutput/DataInput?
El problema básico I (y algunos others, al parecer) tienen es las clases más antiguas que saben cómo serializar/serializar a sí mismos utilizando las interfaces genéricas: DataInput/DataOutput. Me gustaría reutilizar mi serialización personalizada sin escribir un proxy personalizado para ByteBuffer.
+ por mencionar a Avero, parece interesante. – Justin
El rebasamiento en lectura debería arrojar EOFException; el rebasamiento en la escritura sería tratado igual que escribir en un volumen completo (o simplemente lanzar EOF también) – Justin
@Justin: mirando la entrada 'DataOutput', sí, eso podría funcionar bien. Tal vez valga la pena realizar un pequeño experimento para asegurarse de que pueda enviar un proxy 'DataOutput' a un' ByteBuffer' limpiamente y publicar un error en el sitio Oracle o ponerse en contacto con el grupo de expertos nio. Puede ser que estas dos apis tengan como objetivo diferentes niveles de abstracción; No estoy seguro. – andersoj