In einem Client-Programm trudeln nach und nach Strings ein, die eigentlich die Binärdaten von beliebigen Dateien enthalten, diese sollen jetzt hintereinandergesetzt und in einer Datei abgespeichert werden. Die Frage ist nur, wie stell ich das an? Welche Klassen brauche ich dafür, Java bringt ja eine Menge Input- und Outputsachen mit, aber welche passt da?
Edit: Noch was vergessen: Da die Datei ja beliebig groß ist, sollte vielleicht gleich jeder Dateifetzen auf die Platte geschrieben werden, anstatt erst alle Teile im Speicher zusammenzusetzen und dann zu schreiben...
Edit2: Immer wenn ich mich durchgerungen habe hier nachzufragen, löss ich ein paar Minuten später das Problem selber... Die richtige Klasse ist PrintWriter, über println() lässt sich da Zeile für Zeile in die Datei schreiben...
Wenn ich es jetzt noch schaffe, dass die Datei die ankommt nicht völlig kaputt ist bin ich glücklich...
Edit3: Muss schon Spaß machen mich bei meinen Selbstgesprächen zu beobachten. Hab inzwischen das Problem endgültig gelöst:
Der Trick ist es, die Dateien beim Sender und Empfänger jeweils mit Base64 zu kodieren und dann als Folge von ASCII-Zeichen auf die Reise zu schicken. Die Klasse sun.misc.BASE64Decoder bzw sun.misc.BASE64Encoder bringt schon alles nötige mit. Auf der Client-Seite kann man dann die dekodierten Daten direkt mit einem FileoutputStream auf die Platte schreiben, da diese dann als ein Array von Bytes vorliegen...
Dieser Beitrag wurde von deglerj bearbeitet: 04. November 2005 - 13:17