Tengo un InputStream
que necesito agregar caracteres al principio y al final de, y debería terminar con otra variable del tipo InputStream
. ¿Cómo podría hacer esto fácilmente?Agregando caracteres al principio y al final de InputStream en Java
Respuesta
Quiere un SequenceInputStream y un par de ByteArrayInputStream s. Puede usar String.getBytes para hacer los bytes para este último. SequenceInputStream es antiguo, por lo que es un poco torpe para usar:
InputStream middle ;
String beginning = "Once upon a time ...\n";
String end = "\n... and they lived happily ever after.";
List<InputStream> streams = Arrays.asList(
new ByteArrayInputStream(beginning.getBytes()),
middle,
new ByteArrayInputStream(end.getBytes()));
InputStream story = new SequenceInputStream(Collections.enumeration(streams));
Si usted tiene una gran cantidad de personajes que añadir, y no quiere convertirlos en bytes en masa, podría ponerlos en una StringReader, luego use ReaderInputStream desde Commons IO para leerlos como bytes. Pero necesitaría agregar Commons IO a su proyecto para hacer eso. El código exacto para eso se deja como un ejercicio para el lector.
1 Crear un nuevo OutputStream
, respaldado por una matriz de bytes como se sugiere Greg ..
2 Escribe los caracteres iniciales de su nuevo OutputStream
.
3 Copie su InputStream
existente en su nuevo OutputStream
.
4 Escriba los caracteres finales en su nuevo OutputStream
.
5 Cierre su nueva OutputStream
, teniendo cuidado de conservar la matriz de respaldo.
6 Abra la matriz de respaldo como una nueva InputStream
.
Háganos saber si tiene algún problema con alguno de estos pasos.
¿Cómo se escriben los caracteres en un InputStream? –
-1, escriba los caracteres finales en su nuevo InputStream. -> no puedes escribir caracteres en un InputStream – GBa
¡Vaya! Reinicia el cerebro Escribe en una secuencia de salida, respaldada por una matriz de bytes como dice Greg. Extraiga la matriz de respaldo y vuelva a abrir como una secuencia de entrada. Gracias por la corrección. – rossum
- 1. Cortar al principio/al final de la línea, pegar al final/principio de la línea
- 2. Al añadir caracteres al final de cada línea en Emacs
- 3. Agregando código al principio/final de los métodos en tiempo de ejecución dinámicamente
- 4. Agregar un carácter al principio y al final de una cadena
- 5. Archivo por lotes para agregar caracteres al principio y al final de cada línea en el archivo txt
- 6. Adición de texto al principio y al final del archivo en C#
- 7. ¿Cómo eliminar espacios en blanco al principio y al final en matlab?
- 8. Ruby: ¿Cómo contar la cantidad de espacios al principio y al final de una cadena?
- 9. Insertar rápido al principio y al final de un clojure seq?
- 10. eliminar las comillas de la cadena al principio y al final solo si ambas están presentes
- 11. Agregando un dataframe al final de otro data.frame en R
- 12. ¿Cómo dividir una cadena con caracteres en blanco al principio?
- 13. InputStream no se reajustará en principio
- 14. Al usar el complemento jQuery DataTables, ¿agrega fnAddData() filas al principio o al final de una tabla html?
- 15. Mover al inicio y al final de la búsqueda
- 16. ¿Método de base de llamada al principio o al final del método?
- 17. Agregar caracteres al inicio y al final de cada línea en un archivo
- 18. Eclipse CTRL + A, CTRL + E ir al principio ir al final de la línea
- 19. Contenteditable DIV: cómo puedo determinar si el cursor está al principio o al final del contenido
- 20. Retire las líneas vacías de txtfiles, quitar espacios de principio y al final de la línea
- 21. espacios Eliminación al final de una cadena en Java
- 22. Javascript al agregar ceros al principio de una cadena (longitud máxima de 4 caracteres)
- 23. Java BufferedReader volver al principio de un archivo de texto?
- 24. ¿Hay alguna manera de hacer que el ciclo jQuery no se repita al llegar al final o al principio?
- 25. Java - Faltan caracteres finales al encriptar usando blowfish
- 26. agregando matriz al Objeto
- 27. Agregando al classpath en OSX
- 28. La diferencia entre InputStream y InputStreamReader al leer caracteres de múltiples bytes
- 29. write() al principio del archivo?
- 30. @ al principio del valor EditarTexto
Más detalles, por favor? Gracias por los útiles nombres de clase. – pqn
Si lees el javadoc para esas clases, es bastante obvio. Construya un primer ByteArrayInputStream (llamémoslo cabeza) que contenga los bytes del comienzo, un segundo que contenga los bytes del final (llamémoslo cola), y construya un SequenceInputStream desde la cabeza, la corriente de entrada original y la cola. –
¡Gracias! He logrado hacer que esto funcione ahora. – pqn