Convertir Inputstream en Byte Array en Java
-
Convertir InputStream en tableau d’octets en utilisant la méthode
readAllBytes()
en Java -
Convertir InputStream en tableau d’octets en utilisant la méthode
toByteArray()
en Java -
Conversion de l’InputStream en tableau d’octets en utilisant la méthode
write()
en Java -
Convertir InputStream en tableau d’octets en utilisant la méthode
readAllBytes()
en Java -
Convertir InputStream en tableau d’octets en utilisant la méthode
readFully()
en Java -
Conversion de l’InputStream en tableau d’octets en utilisant la méthode
getBytes()
en Java - Conversion de l’InputStream en tableau d’octets en utilisant le code personnalisé en Java
-
Conversion d’InputStream en tableau d’octets en utilisant la méthode
toByteArray()
en Java
Ce tutoriel présente la conversion d’inputstream en tableau d’octets en Java et donne quelques exemples de codes pour comprendre le sujet.
InputStream
est une classe abstraite et une superclasse de toutes les classes qui représentent un flux d’entrée d’octets. Java utilise un flux d’entrée pour lire des données à partir de n’importe quelle source comme un fichier, un tableau, etc. Nous verrons ensuite comment convertir ce flux en tableau d’octets en utilisant certaines méthodes intégrées et du code personnalisé en Java.
Dans cet article, nous utiliserons plusieurs méthodes intégrées telles que toByteArray()
, readAllBytes()
, readFully()
, getBytes()
, write()
, etc et un fichier texte abc.txt
est utilisé pour lire les données. Ce fichier texte contient une seule phrase, Welcome to Delfstack
, qui sera lue et convertie en un tableau d’octets, qui peut ensuite être converti en une chaîne de caractères pour vérifier le résultat souhaité.
Convertir InputStream en tableau d’octets en utilisant la méthode readAllBytes()
en Java
Nous pouvons utiliser la méthode readAllBytes()
pour obtenir toutes les données dans un tableau d’octets. Cette méthode renvoie un tableau d’octets qui peut être passé plus loin dans le constructeur de String
pour imprimer des données textuelles.
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();
}
}
}
Production :
Welcome to Delfstack
Convertir InputStream en tableau d’octets en utilisant la méthode toByteArray()
en Java
Si vous travaillez avec la bibliothèque Apache, vous pouvez utiliser la méthode toByteArray()
de la classe IOUtils
pour obtenir toutes les données dans le tableau d’octets. Cette méthode retourne un tableau d’octets qui peut être passé plus loin dans le constructeur de String
pour imprimer les données textuelles.
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();
}
}
}
Production :
Welcome to Delftstack
Conversion de l’InputStream en tableau d’octets en utilisant la méthode write()
en Java
Nous pouvons utiliser la méthode write()
de la classe ByteArrayOutputStream
pour obtenir toutes les données dans un tableau d’octets. Cette méthode retourne un tableau d’octets qui peut être passé au constructeur de String
pour imprimer des données textuelles.
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();
}
}
}
Production :
Welcome to Delfstack
Convertir InputStream en tableau d’octets en utilisant la méthode readAllBytes()
en Java
Nous pouvons utiliser la méthode readAllBytes()
de la classe DataInputStream
pour convertir toutes les données en un tableau d’octets. Cette méthode renvoie un tableau d’octets qui peut être passé plus loin dans le constructeur de la String
pour imprimer des données textuelles.
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();
}
}
}
Production :
Welcome to Delftstack
Convertir InputStream en tableau d’octets en utilisant la méthode readFully()
en Java
Nous pouvons utiliser la méthode readFully()
de la classe RandomAccessFile
pour convertir toutes les données en un tableau d’octets. Cette méthode retourne un tableau d’octets, qui peut être passé au constructeur de la String
pour imprimer des données textuelles.
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();
}
}
}
Production :
Welcome to Delfstack
Conversion de l’InputStream en tableau d’octets en utilisant la méthode getBytes()
en Java
Nous pouvons utiliser la méthode getBytes()
de la classe String
pour convertir toutes les données en un tableau d’octets. Cette méthode retourne un tableau d’octets qui peut être passé plus loin dans le constructeur de la String
pour imprimer des données textuelles.
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();
}
}
}
Production :
Welcome to Delftstack
Conversion de l’InputStream en tableau d’octets en utilisant le code personnalisé en Java
Si vous ne souhaitez pas utiliser de méthode intégrée, utilisez ce code personnalisé pour convertir inputstream en un tableau d’octets. Ce code renvoie un tableau d’octets qui peut être passé plus loin dans le constructeur String
pour imprimer des données textuelles.
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;
}
}
Production :
Welcome to Delfstack
Conversion d’InputStream en tableau d’octets en utilisant la méthode toByteArray()
en Java
Nous pouvons utiliser la méthode toByteArray()
de la classe ByteArrayOutputStream
pour convertir toutes les données en un tableau d’octets. Cette méthode renvoie un tableau d’octets qui peut être passé plus loin dans le constructeur de la String
pour imprimer des données textuelles.
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();
}
}
}
Production :
Welcome to Delfstack