Converti Inputstream in Byte Array in Java
-
Converti InputStream in Byte Array usando il metodo
readAllBytes()
in Java -
Converti InputStream in Byte Array usando il metodo
toByteArray()
in Java -
Converti InputStream in Byte Array usando il metodo
write()
in Java -
Converti InputStream in Byte Array usando il metodo
readAllBytes()
in Java -
Converti InputStream in Byte Array usando il metodo
readFully()
in Java -
Converti InputStream in Byte Array usando il metodo
getBytes()
in Java - Converti InputStream in Byte Array utilizzando il codice personalizzato in Java
-
Converti InputStream in Byte Array usando il metodo
toByteArray()
in Java
Questo tutorial introduce come convertire inputstream in array di byte in Java ed elenca alcuni codici di esempio per comprendere l’argomento.
InputStream è una classe astratta e una superclasse di tutte le classi che rappresentano un flusso di input di byte. Java utilizza un flusso di input per leggere i dati da qualsiasi origine come file, array, ecc. Vedremo quindi come convertire questo flusso in array di byte utilizzando alcuni metodi incorporati e codice personalizzato in Java.
In questo articolo, useremo diversi metodi incorporati come toByteArray()
, readAllBytes()
, readFully()
, getBytes()
, write()
, ecc e un file di testo abc.txt
viene utilizzato per leggere i dati. Questo file di testo contiene una singola frase, Welcome to Delfstack
, che verrà letta e convertita in un array di byte, che ulteriormente può essere convertito in una stringa per verificare il risultato desiderato.
Converti InputStream in Byte Array usando il metodo readAllBytes()
in Java
Possiamo usare il metodo readAllBytes()
per ottenere tutti i dati in un array di byte. Questo metodo restituisce un array di byte che può essere passato ulteriormente nel costruttore String
per stampare dati testuali.
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();
}
}
}
Produzione:
Welcome to Delfstack
Converti InputStream in Byte Array usando il metodo toByteArray()
in Java
Se lavori con la libreria Apache, puoi usare il metodo toByteArray()
della classe IOUtils
per ottenere tutti i dati nell’array di byte. Questo metodo restituisce un array di byte che può essere passato ulteriormente nel costruttore String
per stampare i dati testuali.
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();
}
}
}
Produzione:
Welcome to Delftstack
Converti InputStream in Byte Array usando il metodo write()
in Java
Possiamo usare il metodo write()
della classe ByteArrayOutputStream
per ottenere tutti i dati in un array di byte. Questo metodo restituisce un array di byte che può essere passato al costruttore String
per stampare dati testuali.
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();
}
}
}
Produzione:
Welcome to Delfstack
Converti InputStream in Byte Array usando il metodo readAllBytes()
in Java
Possiamo usare il metodo readAllBytes()
della classe DataInputStream
per convertire tutti i dati in un array di byte. Questo metodo restituisce un array di byte che può essere passato ulteriormente nel costruttore String
per stampare dati testuali.
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();
}
}
}
Produzione:
Welcome to Delftstack
Converti InputStream in Byte Array usando il metodo readFully()
in Java
Possiamo usare il metodo readFully()
della classe RandomAccessFile
per convertire tutti i dati in un array di byte. Questo metodo restituisce un array di byte, che può essere passato al costruttore String
per stampare dati testuali.
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();
}
}
}
Produzione:
Welcome to Delfstack
Converti InputStream in Byte Array usando il metodo getBytes()
in Java
Possiamo usare il metodo getBytes()
della classe String
per convertire tutti i dati in un array di byte. Questo metodo restituisce un array di byte che può essere passato ulteriormente nel costruttore String
per stampare dati testuali.
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();
}
}
}
Produzione:
Welcome to Delftstack
Converti InputStream in Byte Array utilizzando il codice personalizzato in Java
Se non si desidera utilizzare alcun metodo integrato, utilizzare questo codice personalizzato per convertire inputstream in un array di byte. Questo codice restituisce un array di byte che può essere passato ulteriormente nel costruttore String
per stampare dati testuali.
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;
}
}
Produzione:
Welcome to Delfstack
Converti InputStream in Byte Array usando il metodo toByteArray()
in Java
Possiamo usare il metodo toByteArray()
della classe ByteArrayOutputStream
per convertire tutti i dati in un array di byte. Questo metodo restituisce un array di byte che può essere passato ulteriormente nel costruttore String
per stampare dati testuali.
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();
}
}
}
Produzione:
Welcome to Delfstack