Convertir InputStream en byte array en Java
-
Convertir InputStream en byte array usando el método
readAllBytes()
en Java -
Convertir InputStream en byte array usando el método
toByteArray()
en Java -
Convertir InputStream en byte array usando el método
write()
en Java -
Convierte InputStream en byte array usando el método
readAllBytes()
en Java -
Convertir InputStream en byte array usando el método
readFully()
en Java -
Convertir InputStream a byte array usando el método
getBytes()
en Java - Convertir InputStream en byte array usando el código personalizado en Java
-
Convertir InputStream en byte array usando el método
toByteArray()
en Java
Este tutorial introduce cómo convertir InputStream
en byte array en Java y enumera algunos códigos de ejemplo para comprender el tema.
InputStream
es una clase y superclase abstracta de todas las clases que representan un flujo de entrada de bytes. Java utiliza un flujo de entrada para leer datos de cualquier fuente como un archivo, un array, etc. A continuación veremos cómo convertir este flujo en byte array utilizando algunos métodos incorporados y código personalizado en Java.
En este artículo, usaremos varios métodos incorporados como toByteArray()
, readAllBytes()
, readFully()
, getBytes()
, write()
, etc. y un archivo de texto abc.txt
se usa para leer datos. Este archivo de texto contiene una sola frase, Welcome to Delfstack
, que será leída y convertida en byte array, que a su vez puede ser convertida en una cadena para comprobar el resultado deseado.
Convertir InputStream en byte array usando el método readAllBytes()
en Java
Podemos usar el método readAllBytes()
para meter todos los datos en byte array. Este método devuelve byte array que puede ser pasada al constructor String
para imprimir datos textuales.
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class SimpleTesting {
public static void main(String[] args) {
try {
InputStream ins = new FileInputStream("abc.txt");
byte[] byteArray = ins.readAllBytes();
System.out.println(new String(byteArray));
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delfstack
Convertir InputStream en byte array usando el método toByteArray()
en Java
Si trabajas con la biblioteca Apache, puedes usar el método toByteArray()
de la clase IOUtils
para meter todos los datos en el array de bytes. Este método devuelve byte array que puede ser pasada al constructor String
para imprimir los datos de texto.
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
public class SimpleTesting {
public static void main(String[] args) {
try {
InputStream ins = new FileInputStream("abc.txt");
byte[] bytes = IOUtils.toByteArray(ins);
System.out.println(new String(bytes));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delftstack
Convertir InputStream en byte array usando el método write()
en Java
Podemos usar el método write()
de la clase ByteArrayOutputStream
para obtener todos los datos en byte array. Este método devuelve byte array que puede ser pasada al constructor String
para imprimir datos textuales.
package myjavaproject;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class SimpleTesting {
public static void main(String[] args) {
try {
InputStream ins = new FileInputStream("abc.txt");
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int read;
byte[] data = new byte[16384];
while ((read = ins.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, read);
}
System.out.println(new String(data));
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delfstack
Convierte InputStream en byte array usando el método readAllBytes()
en Java
Podemos usar el método readAllBytes()
de la clase DataInputStream
para convertir todos los datos en byte array. Este método devuelve byte array que puede ser pasada al constructor String
para imprimir datos textuales.
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class SimpleTesting {
public static void main(String[] args) {
try {
String file = "abc.txt";
DataInputStream dis = new DataInputStream(new FileInputStream(file));
byte[] bytes = dis.readAllBytes();
System.out.println(new String(bytes));
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delftstack
Convertir InputStream en byte array usando el método readFully()
en Java
Podemos usar el método readFully()
de la clase RandomAccessFile
para convertir todos los datos en byte array. Este método devuelve byte array, que puede ser pasada al constructor String
para imprimir datos textuales.
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
public class SimpleTesting {
public static void main(String[] args) {
try {
String file = "abc.txt";
InputStream is = new FileInputStream(file);
RandomAccessFile raf = new RandomAccessFile(file, "r");
byte[] bytesData = new byte[(int) raf.length()];
raf.readFully(bytesData);
System.out.println(new String(bytesData));
is.close();
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delfstack
Convertir InputStream a byte array usando el método getBytes()
en Java
Podemos usar el método getBytes()
de la clase String
para convertir todos los datos en byte array. Este método devuelve byte array que puede ser pasada al constructor String
para imprimir datos textuales.
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String[] args) {
try {
String file = "abc.txt";
byte[] bytesData = {};
InputStream is = new FileInputStream(file);
try (BufferedReader buffer = new BufferedReader(new InputStreamReader(is))) {
bytesData = buffer.lines().collect(Collectors.joining("\n")).getBytes();
}
System.out.println(new String(bytesData));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delftstack
Convertir InputStream en byte array usando el código personalizado en Java
Si no quieres usar ningún método incorporado, usa este código personalizado para convertir Inputstream en byte array. Este código devuelve byte array que puede ser pasada al constructor String
para imprimir datos textuales.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class SimpleTesting {
public static void main(String[] args) {
try {
String file = "abc.txt";
byte[] bytesData = {};
bytesData = getBytesFromFile(new File(file));
System.out.println(new String(bytesData));
} catch (IOException e) {
e.printStackTrace();
}
}
public static byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
long length = file.length();
byte[] bytes = new byte[(int) length];
int offset = 0;
int numRead = 0;
while (
offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
offset += numRead;
}
if (offset < bytes.length) {
throw new IOException("Could not read file " + file.getName());
}
return bytes;
}
}
Producción :
Welcome to Delfstack
Convertir InputStream en byte array usando el método toByteArray()
en Java
Podemos usar el método toByteArray()
de la clase ByteArrayOutputStream
para convertir todos los datos en byte array. Este método devuelve byte array que puede ser pasada al constructor String
para imprimir datos textuales.
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class SimpleTesting {
public static void main(String[] args) {
try {
String file = "abc.txt";
InputStream is = new FileInputStream(file);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
is.transferTo(byteArrayOutputStream);
byte[] bytesData = byteArrayOutputStream.toByteArray();
System.out.println(new String(bytesData));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Producción :
Welcome to Delfstack