Von Unix, InputStreams und Null Bytes

TiME-SPLiNTER

Aktives Mitglied
Hallo zusammen 🙂

Ich habe eine Frage: Ich nutze die Jakarta library um per FTP Dateien herunterzuladen. Bei Windows klappt das wunderbar. Ich rufe einen FileOuputStream mit der Methode retrieve() auf.

Java:
FTPClient ftpClient = new FTPClient();
// Verbinden und Anmelden am FTP ...

FileOutputStream fileOutputStream = new FileOutputStream(new File("./test.png"));
ftpClient.retrieve("/html/testseite/images/test.png",fileOutputStream);
fileOutputStream.close();

Wenn ich den Code allerdings unter Unix Systemen laufen lasse (linux, mac) so unterschlägt mir der FileInput/OuputStream teilweise NULL bytes (0x00). Besonder wenn sie am Anfang oder am Ende der Datei sind. Es handelt sich konkret um PNG Dateien die nach einem solchen verhalten natürlich defekt sind...

Kann mir da jemand helfen, das zu umgehen oder ist das ein bekannter Bug von java oder jakarta?

Danke schon mal für eure Hilfe 🙂.
 
Zuletzt bearbeitet:
Ich vermute mal da muß nur vor der Übertragung auf binär umgeschaltet werden.

Java:
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
 
Danke für deine Antwort 🙂. Leider hat das nichts geholfen. Die Bytes gehen immer noch verloren. Gleich nach dem connect() rufe setzte ich non den fileType auf BINARY.

EDIT Also man muss setFileType() zwingend nach dem login() setzen! Die Methode verlangt, dass man erfolgreich angemeldet ist. Dann geht's auch. Danke viel mals 😀.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben