Télécharger un fichier peu importe le type
Résolu
electroking
Messages postés
236
Date d'inscription
Statut
Membre
Dernière intervention
-
electroking Messages postés 236 Date d'inscription Statut Membre Dernière intervention -
electroking Messages postés 236 Date d'inscription Statut Membre Dernière intervention -
Salut,
Pour mon projet je veux pouvoir télécharger un fichier en java, jusqu'à maintenant j'utilisais cette fonction :
Ou from est la source (string url) et to le nom et l'emplacement du fichier téléchargé.
Malheureusement, cela ne fonctionne que pour les fichiers textes, les exe, jar, et autres sont corrompus lors du téléchargement.
Auriez vous une solution à me proposer ?
Merci d'avance pour vos réponses.
Cordialement,
Faure Lucas.
Pour mon projet je veux pouvoir télécharger un fichier en java, jusqu'à maintenant j'utilisais cette fonction :
private void download(String from, String to) throws IOException { URL src = new URL(from); File dest = new File(to); try (PrintWriter out = new PrintWriter(dest); Scanner in = new Scanner(src.openStream())) { while (in.hasNextLine()) out.println(in.nextLine()); } }
Ou from est la source (string url) et to le nom et l'emplacement du fichier téléchargé.
Malheureusement, cela ne fonctionne que pour les fichiers textes, les exe, jar, et autres sont corrompus lors du téléchargement.
Auriez vous une solution à me proposer ?
Merci d'avance pour vos réponses.
Cordialement,
Faure Lucas.
A voir également:
- Télécharger un fichier peu importe le type
- Fichier bin - Guide
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
1 réponse
Bonjour,
Le problème c'est que tu traites des fichiers binaires en les lisant lignes par lignes (ce qui n'a pas de sens).
En faisant un nextLine() le Scanner va découper les lignes en considérant les caractères
Donc le fichier écrit ne sera pas exactement identique à celui qui a été lu.
Plus simplement tu peux faire :
Le problème c'est que tu traites des fichiers binaires en les lisant lignes par lignes (ce qui n'a pas de sens).
En faisant un nextLine() le Scanner va découper les lignes en considérant les caractères
\r\n,
\n,
\r,
\u2028,
\u2029ou
\u0085et toi dans tous les cas tu vas les réécrire avec println qui va mettre
\r\nà chaque fois...
Donc le fichier écrit ne sera pas exactement identique à celui qui a été lu.
Plus simplement tu peux faire :
Files.copy(new URL(from).openStream(), Paths.get(to));
electroking
Messages postés
236
Date d'inscription
Statut
Membre
Dernière intervention
6
merci beaucoup !