Wie lade ich korrekt ein PDF herunter?
-
Hi zusammen,
entschuldigt den wenig eindeutigen Titel. Mir fällt gerade keine bessere, kurze Problembeschreibung ein.
Ich möchte also ein PDF [1] übertragen:
Reader is = new InputStreamReader(url.openStream()); FileWriter file = new FileWriter(r.getLocalPath()+"\\"+r.getFilename()); char[] buffer = new char[256]; int bytesRead = 0; while((bytesRead=is.read(buffer))!=-1) { file.write(buffer,0,bytesRead); } is.close();
Wenn die dieses PDF mit dessen via Browser heruntergeladenen Kopie nachher vergleiche habe ich zwar zwei gleichgroße Dateien mit der selben Anzahl Seiten, aber die Seiten der vom Java-Programm heruntergeladene Kopie sind leer.
Vergleich man diese Dateien im Hexeditor ergeben sich beispielsweise folgende Unterschiede [2]: Woher kommen diese Unterschiede? Und wie kann ich sie verhindern?
Danke im Voraus,
KhadgarP.S.: con.getContentEncoding() liefert null
P.P.S: Sorry für die vielen Überarbeitungen. Verzweifle gerade am BBCode bei dem Versuch das PDF und die Ausgabe des Vergleichs korrekt zu verlinken:
[1] http://www.s-inf.de/Skripte/HS/Logik.2006-SS-Giesl.(AnE).Logikprogrammierung.pdf
[2] http://img174.imageshack.us/img174/2127/pdfvergleich7gl.gif
-
Vielleicht solltest du in Erwägung ziehen, Byte- anstatt Character-Streams zu verwenden. Ich würde hier beispielsweise mit BufferedInputStream und FileOutputStream arbeiten.
-
Vielen Dank für die Anregung. Klingt in der Tat gut
-
Und auch beachten, dass weder read noch write garantieren, dass der gesammte Buffer gelesen/geschrieben wird. Der Rückgabewert sagt, wieviels tatsächlich war.
-
Warum nimmst du keine URLConnection?
Gruß,
URLConnection