Schreibe eine heruntergeladene Binärdatei auf die Festplatte in Java

7

Ich habe eine Software, die es erlaubt, Add-Ons in Javascript-Dateien (.js) zu schreiben, die die Verwendung von Java-Funktionen erlauben (ich weiß nicht, ob das üblich ist, ich habe Java-Aufrufe in JavaScript-Dateien nie zuvor gesehen)

Ich muss eine Binärdatei von einem Webserver herunterladen und auf die Festplatte schreiben. Ich habe den folgenden Code ausprobiert:

%Vor%

Die resultierende Datei ist kein gültiges gzip-Archiv mehr. Es tut mir leid, wenn ich einen großen Fehler gemacht habe, aber ich bin kein Programmierer und kenne Java nicht sehr gut.

    
radius 25.09.2009, 13:24
quelle

4 Antworten

33

Verwenden Sie keine FileWriter - das versucht, die Daten in Text umzuwandeln.

Verwenden Sie einfach FileOutputStream .

%Vor%     
Jon Skeet 02.10.2012, 20:45
quelle
9

Ich weiß, dass diese Frage bereits beantwortet wurde, aber ein einfacherer Ansatz besteht darin, die IOUtils.copy() -Methode von Apache Commons IO zu verwenden, die ein InputStream vollständig in ein OutputStream kopieren kann.

    
Tom 08.05.2012 21:27
quelle
2

DataInputStream ist zum Lesen von Java-Primitiven gedacht, nicht für generische Daten.

Es ist auch redundant, da urlConnect.getInputStream(); bereits einen InputStream zurückgibt und alle InputStreams read ().

unterstützen %Vor%

P.S. Dies setzt voraus, dass is und bis die gleiche Variable sind. Andernfalls lesen Sie den falschen Stream in der Schleife.

    
Powerlord 25.09.2009 13:32
quelle
0

Lesen Sie einfach über LimitInputStream, als ob es genau das tut, was Sie tun, und puffern den Eingabestrom für mehr Effizienz.

    
Ben 20.07.2012 00:47
quelle

Tags und Links