У меня есть этот код, который загружает файл .jar с определенного URL-адреса и помещает его в определенную папку. Загруженный файл jar - это мода для игры, что означает, что его нужно загружать и запускать правильно, не будучи поврежденным.Загруженный файл jar поврежден
Проблема в том, что каждый раз, когда я пытаюсь загрузить файл, он в какой-то мере повреждается и вызывает ошибки при его загрузке.
Это мой скачать код:
final static int size=1024;
public static void downloadFile(String fAddress, String localFileName, String destinationDir, String modID) {
OutputStream outStream = null;
URLConnection uCon = null;
InputStream is = null;
try {
URL Url;
byte[] buf;
int ByteRead,ByteWritten=0;
Url= new URL(fAddress);
outStream = new BufferedOutputStream(new
FileOutputStream(destinationDir+"/"+localFileName));
uCon = Url.openConnection();
is = uCon.getInputStream();
buf = new byte[size];
while ((ByteRead = is.read(buf)) != -1) {
outStream.write(buf, 0, ByteRead);
ByteWritten += ByteRead;
}
System.out.println("Downloaded Successfully.");
System.out.println("File name:\""+localFileName+ "\"\nNo ofbytes :" + ByteWritten);
System.out.println("Writing info file");
WriteInfo.createInfoFile(localFileName, modID);
}catch (Exception e) {
e.printStackTrace();
}
finally {
try {
is.close();
outStream.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
Любые идеи, что не так с этим кодом?
Замечание: соглашение о кодировании говорит, что имена переменных должны начинаться с небольшой буквы. – abbas
Нет ничего явно неправильного в этом коде. Каким образом загруженный файл поврежден? (Неверная длина, байты заменены, ..) Можете ли вы быть уверены, что это не сервер, который развращает файл? – Joni
Я знаю, что файл отлично на сервере, потому что я пытался вручную загрузить и установить его с помощью моего веб-браузера. Когда я попробовал это, он отлично работал – JamEngulfer