copier un flux

Le
Xavier Demaret
Salut !
J'ai un flux (en l'occurence un BufferedInputStream d'octets issus de
pages html) qui nécessite plusieurs traitements réalisés par plusieurs
objets différents, en parallèle. Il faut donc que plusieurs objets
puissent lire les données du flux sans influer sur les autres. En gros,
il me faudrait faire des copies de ce flux.
En supposant qu'on veuille accéder à BufferedInputStream input, en
faisant comme ça :

InputStream is1, is2;
is1 = input;
is2 = input;

bin évidemment, quand on fait read() sur is1, le prochain read() sur is2
renvoie les caractères suivants, ça ne marche donc pas

Comment dois-je m'y prendre, s'iou plaît ?
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
captainpaf
Le #653610
"Xavier Demaret" news: c7aeeq$o6o$
Salut !
J'ai un flux (en l'occurence un BufferedInputStream d'octets issus de
pages html) qui nécessite plusieurs traitements réalisés par plusieurs
objets différents, en parallèle. Il faut donc que plusieurs objets
puissent lire les données du flux sans influer sur les autres. En gros,
il me faudrait faire des copies de ce flux.
En supposant qu'on veuille accéder à BufferedInputStream input, en
faisant comme ça :

InputStream is1, is2;
is1 = input;
is2 = input;

bin évidemment, quand on fait read() sur is1, le prochain read() sur is2
renvoie les caractères suivants, ça ne marche donc pas...

Comment dois-je m'y prendre, s'iou plaît ?


Salut,

quand tu fais : "InputStream is1, is2;", tu déclares 2 références sur des
InputStream sans les construire. Elle ne "pointe" donc sur aucun objects.
après tu fais "is1 = input;" et "is2 = input;" donc is1 et is2 deviennent
exactement les même références (is1==is2). Donc forçément ça ne peut pas
fonctionner.
Regarde du côté de "new" pour obtenir des références diférentes.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.677 / Virus Database: 439 - Release Date: 04/05/2004

Publicité
Poster une réponse
Anonyme