Tengo un software que permite escribir complementos en archivos JavaScript (.js) que permiten usar la función Java (no sé si esto es común, nunca vi java call en javascript file before)Escribir un archivo descargado binario en un disco en Java
Necesito descargar un archivo binario de un servidor web y escribirlo en el disco duro. Probé el siguiente código:
baseencoder = new org.apache.commons.codec.binary.Base64();
url = new java.net.URL("https://server/file.tgz");
urlConnect = url.openConnection();
urlConnect.setDoInput(true);
urlConnect.setDoOutput(true);
urlConnect.setRequestProperty("authorization","Basic "+ java.lang.String(baseencoder.encodeBase64(java.lang.String(username + ":" + password).getBytes())));
urlConnect.setRequestProperty("content-type","application/x-www-form-urlencoded");
is = new java.io.DataInputStream(urlConnect.getInputStream());
fstream = new FileWriter("C:\\tmp\\test.tgz");
out = new BufferedWriter(fstream);
while((data = is.read()) != -1){
out.write(data);
}
out.close();
is.close();
El archivo resultante ya no es un archivo gzip válido. Lo siento si cometí un gran error, pero no soy un programador y no conozco demasiado Java.
Además, querrá usar la condición de prueba correcta en su ciclo while: while ((data = ** is **. Read())! = Null) {...}. –
Gracias al uso de FileOutputStream (todavía uso solo una lectura simple() porque parece que no es posible usar un búfer de bytes en javascript ya que no es un objeto. – radius