Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1457 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  lecture/écriture binaire (depuis URL) [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lecture/écriture binaire (depuis URL) [Résolu]

n°1048899
fox25
con prend pas
Posté le 15-04-2005 à 17:04:54  profilanswer
 

Bonjour,
 
j'ai besoin de faire un petit logiciel qui va chercher un .zip sur internet et le télécharge.
 
J'ai fait un code pour télécharger le fichier, puis le dézipper. Tout fonctionne très bien, mais c'est extremement lent. Sur les ordis de l'école tout se fait à 1ko/s, pourtant c'est de bon ordis. Ce problème vient-il de la lenteur de java ou de mon code qui est pas efficace?
 
J'ai trouvé nulle part une autre méthode pour lire/écrire en binaire.
 
Voici mon code pour télécharger le fichier et l'écire sur le disque:  
 

Code :
  1. /* connexion est une URL  
  2. j'ai enlever les parties du code inutiles, qui servait à l'affichage.
  3. */
  4. File rep=new File("patchs" );
  5. if(!rep.exists())
  6. {
  7.  rep.mkdir();
  8. }
  9. File fichierEcrit=new File(rep,fichier);
  10. fichierEcrit.createNewFile();
  11.   InputStream   fluxFichier = connexion.getInputStream ();
  12. DataOutputStream monFlotDeDonnnees =new DataOutputStream(new
  13. FileOutputStream(fichierEcrit));
  14. /* lecture et écriture des données */
  15.  while ((unOctet = fluxFichier.read()) != -1)
  16.  {
  17.   monFlotDeDonnnees.write(unOctet);
  18.  }
  19.  fluxFichier.close();
  20.  monFlotDeDonnnees.close();

 
 
Merci d'avance  :jap:


Message édité par fox25 le 16-04-2005 à 17:32:21
mood
Publicité
Posté le 15-04-2005 à 17:04:54  profilanswer
 

n°1049428
the real m​oins moins
Posté le 16-04-2005 à 02:51:53  profilanswer
 

ben euh, tu lis octet par octer aussi, c'est ptet pas le plus efficace. va voir le tuto de sun sur les i/o, ils parlent un peu de tout ça, et tu verras les autres methodes read()


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1049429
the real m​oins moins
Posté le 16-04-2005 à 02:52:35  profilanswer
 

et je vois pas DU TOUT pourquoi tu passes par un DataOutputStream ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1049512
benou
Posté le 16-04-2005 à 11:56:26  profilanswer
 

ca vaudrait aussi le coup de mettre un petit bufferedInputStream pour voir si ca arrange les choses ...

n°1049743
fox25
con prend pas
Posté le 16-04-2005 à 16:14:59  profilanswer
 

the real moins moins a écrit :

et je vois pas DU TOUT pourquoi tu passes par un DataOutputStream ?


Pourquoi ne faut-il pas que j'utiliser un DataOutputStream ? je devrais utiliser quoi à la place?
 
et comment faire pour lire plus qu'un byte? j'ai essayé avec un tablea de byte, mais le fichier était mal écrit après (zip corrompu)

n°1049750
the real m​oins moins
Posté le 16-04-2005 à 16:18:44  profilanswer
 

fox25 a écrit :

Pourquoi ne faut-il pas que j'utiliser un DataOutputStream ? je devrais utiliser quoi à la place?
 
et comment faire pour lire plus qu'un byte? j'ai essayé avec un tablea de byte, mais le fichier était mal écrit après (zip corrompu)


ben t'as lu la doc des classes que tu utilises au moins? c'est écrit noir sur blanc dans les 2 premieres lignes, l'utilité d'un DataOutputStream ..
 
 
et je t'ai pas déjà conseillé d'aller lire le tuto sur les i/o ? :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1049766
fox25
con prend pas
Posté le 16-04-2005 à 16:27:36  profilanswer
 

the real moins moins a écrit :

ben t'as lu la doc des classes que tu utilises au moins? c'est écrit noir sur blanc dans les 2 premieres lignes, l'utilité d'un DataOutputStream ..
 
 
et je t'ai pas déjà conseillé d'aller lire le tuto sur les i/o ? :heink:


 
 

Citation :

A data output stream lets an application write primitive Java data types to an output stream in a portable way. An application can then use a data input stream to read the data back in.


 
Et, pourquoi je dois pas l'utiliser?

n°1049784
fox25
con prend pas
Posté le 16-04-2005 à 17:17:09  profilanswer
 

benou a écrit :

ca vaudrait aussi le coup de mettre un petit bufferedInputStream pour voir si ca arrange les choses ...


 
 
j'ai mis des buffer un peu partout, ça va nettement plus vite  :) , merci pour l'aide précise.
 
Par contre j'aimerais quand même lire plusieurs byte à la fois, mais je trouve pas de tuto sur ça. (si j'utiliser un tableau de bytes et que je met ça taille à 1 tout marche très bien, si j'en met plus, ça marche plus  :cry: )

n°1049787
benou
Posté le 16-04-2005 à 17:22:30  profilanswer
 

fox25 a écrit :


Par contre j'aimerais quand même lire plusieurs byte à la fois, mais je trouve pas de tuto sur ça. (si j'utiliser un tableau de bytes et que je met ça taille à 1 tout marche très bien, si j'en met plus, ça marche plus  :cry: )


inspire toi de ca : http://forum.hardware.fr/forum2.ph [...] =8#t604575

n°1049788
fox25
con prend pas
Posté le 16-04-2005 à 17:26:29  profilanswer
 


 
 
merci, c'est bon ça marche enfin. C'est vraiment sacrément plus vite.  
 
Mon erreur venait que j'utilisait pas le write(buffer, off, len) mais le simple write(buffer). Je pensait que ça gerait tout seul ce qu'il arrivait à prendre  :(  .
 
 
Merci beaucoup pour ton aide  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  lecture/écriture binaire (depuis URL) [Résolu]

 

Sujets relatifs
[JAVA]Pb retour variable... [Résolu][resolu][MYSQL] CREATE VIEW ???
[C] Stocker une valeur entière dans un char * [Résolu]taille d'une chaine de caratere? [RESOLU]
[RESOLU] - Superposer 2 Div en position:relative ?Les checkbox et la base de données... [RESOLU] -
Petit problème d'ouverture de pop up avec window.open [RESOLU][resolu]Problème JS et PHP
un upload chez free : comment verifier taille des images ? [RESOLU][ActionScript] Débutant: Lecture de clip, HELP
Plus de sujets relatifs à : lecture/écriture binaire (depuis URL) [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR