Konvertieren von Inputstream in Byte-Array in Java
-
Konvertieren von InputStream in Byte-Array mit der Methode
readAllBytes()
in Java -
InputStream in Byte-Array umwandeln mit der Methode
toByteArray()
in Java -
InputStream in Byte-Array umwandeln mit der Methode
write()
in Java -
InputStream in Byte-Array umwandeln mit der Methode
readAllBytes()
in Java -
InputStream in ein Byte-Array umwandeln mit der Methode
readFully()
in Java -
InputStream in Byte-Array umwandeln mit der Methode
getBytes()
in Java - InputStream in Byte-Array konvertieren mit dem angepassten Code in Java
-
InputStream in ein Byte-Array konvertieren mit der Methode
toByteArray()
in Java
Dieses Tutorial stellt vor, wie man in Java einen Inputstream in ein Byte-Array konvertiert und zeigt einige Beispielcodes zum Verständnis des Themas.
InputStream
ist eine abstrakte Klasse und Oberklasse aller Klassen, die einen Eingabestrom von Bytes darstellen. Java verwendet einen Eingabestrom, um Daten aus einer beliebigen Quelle wie Datei, Array usw. zu lesen. Wir werden dann sehen, wie man diesen Stream in ein Byte-Array umwandelt, indem wir einige eingebaute Methoden und eigenen Code in Java verwenden.
In diesem Artikel werden wir mehrere eingebaute Methoden wie toByteArray()
, readAllBytes()
, readFully()
, getBytes()
, write()
, usw. verwenden und eine Textdatei abc.txt
wird zum Lesen von Daten verwendet. Diese Textdatei enthält einen einzelnen Satz, Welcome to Delfstack
, den wir einlesen und in ein Byte-Array umwandeln werden, das wiederum in einen String umgewandelt werden kann, um das gewünschte Ergebnis zu überprüfen.
Konvertieren von InputStream in Byte-Array mit der Methode readAllBytes()
in Java
Wir können die Methode readAllBytes()
verwenden, um alle Daten in ein Byte-Array zu bekommen. Diese Methode gibt ein Byte-Array zurück, das an den Konstruktor String
weitergegeben werden kann, um Textdaten auszugeben.
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();
}
}
}
Ausgabe:
Welcome to Delfstack
InputStream in Byte-Array umwandeln mit der Methode toByteArray()
in Java
Wenn Sie mit der Apache-Bibliothek arbeiten, können Sie die Methode toByteArray()
der Klasse IOUtils
verwenden, um alle Daten in ein Byte-Array zu übertragen. Diese Methode gibt ein Byte-Array zurück, das weiter an den String
-Konstruktor übergeben werden kann, um die textuellen Daten auszugeben.
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();
}
}
}
Ausgabe:
Welcome to Delftstack
InputStream in Byte-Array umwandeln mit der Methode write()
in Java
Wir können die Methode write()
der Klasse ByteArrayOutputStream
verwenden, um alle Daten in ein Byte-Array zu bekommen. Diese Methode gibt ein Byte-Array zurück, das an den Konstruktor String
übergeben werden kann, um textuelle Daten zu drucken.
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();
}
}
}
Ausgabe:
Welcome to Delfstack
InputStream in Byte-Array umwandeln mit der Methode readAllBytes()
in Java
Wir können die Methode readAllBytes()
der Klasse DataInputStream
verwenden, um alle Daten in ein Byte-Array zu konvertieren. Diese Methode gibt ein Byte-Array zurück, das an den Konstruktor String
weitergereicht werden kann, um textuelle Daten auszugeben.
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();
}
}
}
Ausgabe:
Welcome to Delftstack
InputStream in ein Byte-Array umwandeln mit der Methode readFully()
in Java
Wir können die Methode readFully()
der Klasse RandomAccessFile
verwenden, um alle Daten in ein Byte-Array zu konvertieren. Diese Methode gibt ein Byte-Array zurück, das an den Konstruktor String
übergeben werden kann, um Textdaten auszugeben.
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();
}
}
}
Ausgabe:
Welcome to Delfstack
InputStream in Byte-Array umwandeln mit der Methode getBytes()
in Java
Wir können die Methode getBytes()
der Klasse String
verwenden, um alle Daten in ein Byte-Array zu konvertieren. Diese Methode gibt ein Byte-Array zurück, das an den Konstruktor String
weitergegeben werden kann, um Textdaten auszugeben.
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();
}
}
}
Ausgabe:
Welcome to Delftstack
InputStream in Byte-Array konvertieren mit dem angepassten Code in Java
Wenn Sie keine der eingebauten Methoden verwenden möchten, können Sie diesen angepassten Code verwenden, um InputStream in ein Byte-Array zu konvertieren. Dieser Code gibt ein Byte-Array zurück, das an den Konstruktor String
weitergegeben werden kann, um Textdaten zu drucken.
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;
}
}
Ausgabe:
Welcome to Delfstack
InputStream in ein Byte-Array konvertieren mit der Methode toByteArray()
in Java
Wir können die Methode toByteArray()
der Klasse ByteArrayOutputStream
verwenden, um alle Daten in ein Byte-Array zu konvertieren. Diese Methode gibt ein Byte-Array zurück, das an den Konstruktor String
weitergegeben werden kann, um Textdaten zu drucken.
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();
}
}
}
Ausgabe:
Welcome to Delfstack