English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderemos con ejemplos Java ByteArrayOutputStream y sus métodos.
La clase ByteArrayOutputStream del paquete java.io se puede usar para escribir datos de array de salida de datos (en bytes).
Hereda de la clase abstracta OutputStream.
Nota:Mantiene un array de bytes interno para almacenar datos en ByteArrayOutputStream
Para crear un flujo de salida de array de bytes, debemos primero importar el paquete java.io.ByteArrayOutputStream. Después de importar el paquete, podemos crear el flujo de salida.
//Crea un ByteArrayOutputStream de tamaño predeterminado ByteArrayOutputStream out = new ByteArrayOutputStream();
Aquí, creamos un flujo de salida que escribe datos en un tamaño predeterminado de32Se almacenan bytes en un array de bytes. Sin embargo, podemos cambiar el tamaño predeterminado del array.
//Crea un ByteArrayOutputStream con el tamaño especificado ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Aquí, size especifica la longitud del array.
La clase ByteArrayOutputStream proporciona implementaciones de diferentes métodos que existen en la clase OutputStream.
write(int byte) - Escribe los bytes especificados en el flujo de salida
write(byte[] array) - Escribe los bytes del array especificado en el flujo de salida
write(byte[] arr, int start, int length)- Escribe desde la posición start un número de bytes igual a length en el flujo de salida del array
writeTo(ByteArrayOutputStream out1) -Escribe todos los datos del flujo de salida actual en el flujo de salida especificado
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is a line of text inside the string."; try { //Crea un flujo de salida ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] array = data.getBytes(); //Escribe los datos en el flujo de salida out.write(array); //Recupera los datos del flujo de salida en formato de cadena String streamData = out.toString(); System.out.println("Flujo de salida: "); + streamData); out.close(); } catch (Exception e) { e.getStackTrace(); } } }
输出结果
Flujo de salida: This is a line of text inside the string.
En el ejemplo anterior, creamos un flujo de salida de bytes llamado output.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Para escribir datos en el flujo de salida, utilizamos el método write().
Nota:El método getBytes() utilizado en el programa convierte una cadena en un array de bytes.
toByteArray() - Devuelve el array existente en el flujo de salida
toString() - Devuelve todos los datos del flujo de salida en forma de cadena
Por ejemplo,
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is data."; try { //Crea un flujo de salida ByteArrayOutputStream out = new ByteArrayOutputStream(); //Escribe los datos en el flujo de salida out.write(data.getBytes()); //Devuelve un array de bytes byte[] byteData = out.toByteArray(); System.out.print("Usando toByteArray() de los datos: "); for(int i=0; i<byteData.length; i++) { System.out.print((char)byteData[i]); } //Devuelve una cadena String stringData = out.toString(); System.out.println("\nUsando toString() de los datos: " + stringData); out.close(); } catch (Exception e) { e.getStackTrace(); } } }
输出结果
使用 toByteArray () 的数据: This is data. 使用 toString () 的数据: This is data.
在上面的示例中,我们创建了一个字节数组来存储 toByteArray () 方法返回的数据。
然后使用 for 循环访问数组中的每个字节。在这里,使用类型转换将每个字节转换为相应的字符。
要关闭输出流,我们可以使用 close () 方法。
但是,close () 方法在 ByteArrayOutputStream 类中无效。即使调用了 close () 方法,我们也可以使用此类的方法。
方法 | 内容描述 |
---|---|
size () | 返回输出流中数组的大小 |
flush () | 清除输出流 |