[Java] probleme out.write()

probleme out.write() [Java] - Java - Programmation

Marsh Posté le 03-02-2005 à 14:31:33    

Quel chipotage, comme on dit chez nous.
 
Pq pas simplement :

Code :
  1. while ((length=intput.read(buffer))!= -1)
  2. {             
  3.   output.write(buffer,0,length);
  4.                
  5.   round++;
  6. }


 :heink: ?


Message édité par sircam le 03-02-2005 à 14:31:56

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 03-02-2005 à 14:31:33   

Reply

Marsh Posté le 03-02-2005 à 15:31:42    

stef312 a écrit :

parce que length a toujours la meme valeur (taille).


bha nan : length ca retourne le nombre d'octets lus => tu en réécris autant que t'en as lu (que le buffer soit plein ou non)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-02-2005 à 16:03:23    

stef312 a écrit :

Bah si : mon fichier à la taille suivante round*taille.
Un multiple de taille si tu préfere. Donc length = taille toujours.


Ca ne change rien : la solution que je te propose est générique et fonctionnera pour toutes les tailles de fichier (pas besoin d'utiliser un alambiquage qui n'apporte rien).
 
A contrario, tu ne va pas hardcoder la valeur length sous prétexte que tu la connais.
 

Citation :

sauf au dernier tour où la taille peut varier.


Beh tu vois que la taille lue n'est pas toujours la même.  :heink:  
 
File un peu la déclaration de input et output, pour voir.  [:crosscrusher]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 03-02-2005 à 16:41:08    

stef312 a écrit :

en fait au dernier tour je ne recopie pas le fichier tel quel mais une partie seulement. c'est pour ça que je dis que la taille peut varier.


Ah.
 

stef312 a écrit :

Par contre, je viens de blinder de flush la partie d'avant et ça à l'air de fonctionner. :???:
je vais vérifier dans d'autres cas pour voir si c'était ça.


Yep, faut pas blinder comme un taré mais bon, qui dit bufferiser, dit flusher (spécialement si tu enchaînes différents traitements). Certains streams ont un paramètre auto-flush, vois la javadoc.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed