Necesito reemplazar el código usando RandomAccessFile
con uno que usa memoria intermedia de bytes en la memoria (como byte[]
o derivados como ByteArrayInputStream
). ¿Hay alguna API (contenedor de matriz de bytes?) Que tenga una interfaz similar a RandomAccessFile
, con seek()
y que genere read()
que podría conectar uno a uno.API de tipo RandomAccessFile para matriz de bytes en memoria?
Respuesta
ByteArrayInputStream
puede hacerlo:
read()
funciona de la misma.seek(n)
se puede sustituir porreset()
seguido porskip(n)
Sí, pero deberá introducir una nueva interfaz que tenga ambos métodos 'read()' y 'seek()'. Ninguna interfaz de E/S Java existente (nueva o antigua) tiene dicha interfaz. Una vez que tenga esta interfaz, tendrá que crear dos implementaciones: una que use 'RandomAccessFile' y otra que use' ByteArrayInputStream'. –
Tengo uno de estos - Lo cargué en http://home.arcor.de/joriki/seekable-byte-array.zip - Espero que ayude.
el enlace está muerto. – kolistivra
También es bueno, pero tiene la desventaja de que la interfaz es bastante diferente de RandomAccessFile. Al construir sobre DataInputStream, se obtiene algo que implementa DataInput, y el código que usa RandomAccessFile como DataInput no necesita ser cambiado. – joriki
joriki, 'DataInput' no proporciona' seek() ', por lo que un' RandomAccessFile' que se pasa a un método que espera un 'DataInput' no será muy buscable. –
que tenía el mismo problema. RandomAccessFile tiene muchos métodos finales y nativos, por lo que no se puede sobrecargar.
Terminé para crear mi propia clase abstracta SeekableInputStream por el robo de éste sin readfully: https://github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/seekablestream/SeekableStream.java
he definido SeekableFileInputStream que utiliza RandomAccessFile.
Definí SeekableByteArrayInputStream, que es fácil de definir. Esta clase, también es capaz de obtener cualquier InputStream, para transformarlo en una matriz de bytes, por lo que este es un tipo de transmisión en caché.
- 1. API para obtener IL de matriz de bytes
- 2. Memoria libre de una matriz de bytes en Java
- 3. Convertir tipo de datos 'largo' de matriz de bytes
- 4. Java: ¿Cómo "recortar" una matriz de bytes?
- 5. asignación de matriz de bytes
- 6. Abrir archivo de la matriz de bytes
- 7. Cadena vs matriz de bytes, rendimiento
- 8. matriz de bytes en groovy
- 9. Int matriz de bytes a
- 10. Convirtiendo una matriz de bytes a una matriz de tipos primitivos con tipo desconocido en C#
- 11. Comparador Java para matriz de bytes (lexicográfica)
- 12. Gran matriz de bytes mutable en Erlang
- 13. ¿Cómo convierto una matriz de bytes Java en una matriz de bytes Scala?
- 14. Mejor forma de convertir una matriz de bytes [] en una memoria de cadenas
- 15. Cadena a matriz de bytes en php
- 16. Convertir una matriz de bytes a una clase que contiene una matriz de bytes en C#
- 17. cadena de matriz de bytes
- 18. Java: seguro de subproceso RandomAccessFile
- 19. Cómo dividir una matriz de bytes
- 20. Conversión de BitmapImage en matriz de bytes
- 21. Reproducir matriz de bytes en MediaPlayer - Android
- 22. MemoryStream frente a una matriz de bytes
- 23. Cómo convertir una matriz de bytes hash C# a una cadena para pasarla a la API?
- 24. Inserte una matriz de bytes en otra matriz de bytes en una posición específica con C#
- 25. Almacenamiento de matriz de bytes Mysql
- 26. deserializar una matriz de bytes
- 27. BufferedReader vs RandomAccessFile en Java
- 28. C#: Buscar una matriz de bytes [] en la memoria de otro proceso
- 29. Elementos vacíos en matriz de bytes C#
- 30. Cómo convertir imágenes en matriz de bytes
A menos que necesite escribir también, 'DataInputStream' se puede envolver fácilmente para proporcionar la funcionalidad' seek() 'y el resto ya está allí. No es una solución perfecta, pero si todo lo demás falla, es relativamente fácil de implementar. – biziclop
¿Se puede usar un archivo temporal en su lugar? – finnw