2 Stimmen

InputStream in ByteArray speichern

Meine Aufgabe ist: Clients verbinden sich mit dem ServerSocket und senden Dateien mit beliebiger Kodierung (UTF-8, ISO-8859-5, CP1251 z.B.). Wenn der Server den Inhalt der Datei erhält, muss das Skript ihn in MySQL einfügen.

Da die Kodierung unterschiedlich sein kann, muss ich den Inhalt der Datei als ByteArray(?) speichern.

Byt Ich weiß nicht, wie ByteArray von Socket.getInputStream() erhalten.

Bitte helfen Sie mit.

Vielen Dank im Voraus!

4voto

Rocky Pulley Punkte 21329
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] tmp = new byte[4096];
int ret = 0;

while((ret = inputStream.read(tmp)) > 0)
{
    bos.write(tmp, 0, ret);
}

byte[] myArray = bos.toByteArray();

2voto

Ondra Žižka Punkte 39898

Commons IO - http://commons.apache.org/io/

toByteArray(Reader input, String encoding) Abrufen des Inhalts eines Readers als Byte[] unter Verwendung der angegebenen Zeichenkodierung.

http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X