Bonjour,
Je travaille actuellement à la création d'un launcher pour un jeu que je suis entrain de créer.
Ce launcher se doit de faire des mises à jours et de télécharger un .jar quelque-part sur internet.
Pour savoir si mon launcher est à jour je télécharge via le code ci-dessous, un fichier que j'ai appelé versions.txt qui est comparé à une variable static présent dans le code du launcher pour déterminer si j'ai bien la dernière version et si non la télécharger. Jusque là pas de problème. Le launcher se met à jour (quelques ko) et les fichiers sont bien téléchargés.
Mais arrive le moment fatidique, je souhaite télécharger le jeu grâce au launcher (plus de 80 mo) et là c'est la catastrophe, lorsque je regarde le fichier téléchargé (en moins d'une seconde), il n'est composé que de 12ko (4ko sur un autre ordinateur où j'ai fais le test). Si bien que le .jar est corrompu et c'est normal.
Voici le code de mon fichier Download.class. Je ne comprend pas du tout ce code (pris sur internet) donc si quelqu'un à la solution à ce problème, qu'il me l'a communique et si il pouvait en profiter pour me faire un mini cours sur ce que le code signifie, je serai le plus heureux des hommes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class Download { private static final int BUFFER_SIZE = 4096; public static void downloadFile(String fileURL, String fileName) throws IOException { URL url = new URL(fileURL); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); int responseCode = httpConn.getResponseCode(); // always check HTTP response code first if (responseCode == HttpURLConnection.HTTP_OK) { // opens input stream from the HTTP connection InputStream inputStream = httpConn.getInputStream(); String saveFilePath = fileName; // opens an output stream to save into file FileOutputStream outputStream = new FileOutputStream(saveFilePath); int bytesRead = -1; byte[] buffer = new byte[BUFFER_SIZE]; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } outputStream.close(); inputStream.close(); System.out.println("File downloaded"); } else { System.out.println("No file to download. Server replied HTTP code: " + responseCode); } httpConn.disconnect(); } }
Partager