Mam oprogramowanie, które pozwala pisać dodatki w plikach javascript (.js), które pozwalają na korzystanie z funkcji Java (nie wiem, czy to jest typowe, nigdy nie widziałem wywołanie java w pliku javascript wcześniej)Napisz pobrany plik binarny na dysk w Javie
Potrzebuję pobrać plik binarny z serwera WWW i zapisać go na dysku twardym. Próbowałem następujący kod:
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();
Wynikowy plik nie jest już prawidłowym archiwum gzip. Przepraszam, jeśli popełniłem wielki błąd, ale nie jestem programistą i nie znam zbyt wiele Java.
Należy również użyć poprawnego warunku testu w pętli while: while ((data = ** jest **. Read())! = Null) {...}. –
Dzięki za pomocą pliku FileOutputStream działa (nadal używam tylko prostego read(), ponieważ wydaje się, że nie można używać bufora bajtowego w javascript, ponieważ nie jest to obiekt. – radius