Cambiar el posicionamiento del índice en InputStream
Tengo un archivo binario que contiene las claves y después de cada clave hay una imagen asociada con él. Quiero saltar diferentes claves pero no pude encontrar ningún método que cambie el posicionamiento del índice en el flujo de entrada. He visto el método mark()
, pero no salta en diferentes lugares.
¿Alguien tiene alguna idea de cómo hacer eso?
- HttpURLConnections persistentes en Android
- Establecer estilo de botón mediante programación
- Android Phonegap 2.1> 2.2 Error de actualización
- ¿Cómo puedo detectar formas geométricas 2D básicas (por ejemplo, cuadrado, triángulo, círculo) en una imagen JPEG?
- Inserción de un elemento en una lista ordenada
- En Android> 6.0 obtener la excepción de permiso de seguridad al acceder a la imagen de la galería por segunda vez
- Butterknife 8.4.0 no encuentra vistas después de volver a ejecutar la aplicación. Obtiene una excepción NullPointerException
- Cómo acceder a variables de actividad de un fragmento Android
- Comprobar si la notificación de mi aplicación se está ejecutando
- Formato Flotación a n decimales
- Obtener la dirección IP del dispositivo Android cuando está conectado a una red móvil 3G
- Android y Javadoc: @inheritDoc no funciona
- Enviar puntuaciones a las tablas de clasificación de Google Play Games y mostrar nuevos rangos
Hay un método de long skip(long n)
que puede ser capaz de utilizar:
Salta y descarta
n
bytes de datos de este flujo de entrada. El métodoskip
puede, por una variedad de razones, terminar saltando sobre un número menor de bytes, posiblemente0
. Esto puede resultar de cualquiera de una serie de condiciones; Llegar al final del archivo antes den
bytes se han saltado es sólo una posibilidad. Se devuelve el número real de bytes omitidos. Sin
es negativo, no se omite ningún byte.
Como se documenta, no se garantiza que se omitirán n
bytes, por lo tanto, compruebe dos veces el valor devuelto. Tenga en cuenta que esto no le permite "saltar hacia atrás", pero si es markSupported()
, puede reset()
primero y luego skip
hacia adelante a una posición anterior si es necesario.
Otras opciones
También puede utilizar java.io.RandomAccessFile
, que como su nombre indica, permite el acceso aleatorio con su método de seek(long pos)
.
Usted mencionó imágenes, por lo que si está utilizando Java Advanced Imaging , otra opción posible es com.sun.media.jai.codec.FileSeekableStream
, que es un SeekableStream
que toma su entrada de un File
o RandomAccessFile
. Tenga en cuenta que esta clase no es una parte comprometida de la API JAI. Puede ser eliminado o modificado en futuras versiones de JAI.
- Android – MediaPlayer + PowerManager.PARTIAL_WAKE_LOCK
- Cómo registrarse para escuchar cualquier cambio de contacto en android