Datei einlesen - uebermitteln - und wieder abspeichern

zu1u

Mitglied
Hallo Leute,

ich habe das Problem, dass ich wie gesagt eine Datei in ein byte array einlese, sie dann ueber einen Socket schicke, am anderen Ende mit einem BufferedReader den InputStream des Sockets lese und dort die Datei wieder speichern moechte.

Das Lesen des angekommenen Daten mittels BufferedReader mache ich folgendermassen:
String message="";
int character;

for (int i = 0; i <= contentLength; i++){
character = br.read();
if (character == -1)
break;
message += (char) character;
}

und dann message.getBytes() zu einem FileOutputStream



Jetzt habe ich das Problem dass sich der Dateiinhalt nach dem uebermitteln leicht von dem der Ausgangsdatei unterscheidet, was ich natuerilch nicht moechte!
z.B.
orginal:
W°´žYÚ3D¸œºù¢ÊFôŽ·…¹Ö†ó6“@–‡%ÑÒôÇ

uebermittelt:
W°´žYÚ3D¸œºù¢ÊFôŽ·…¹?Ö†ó6“@–‡%Ñ?ÒôÇ

ich habe jetzt schon sehr lange nach einem Grund dafuer gesucht, kann aber beim besten Willen keinen finden.
Habt ihr vieleicht irgendwelche Tips, oder sowas aehnliches schonmal gehabt?

Vielen Dank schonmal!
 
Das liegt daran, dass binäre Daten (bytes) mit einem Stream verarbeitet werden müssen. Reader (wie z. B. der BufferedReader) sind ausschließlich für den Gebrauch mit für Menschen lesbaren Text geeignet.
 
Zurück