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...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
captainpaf
"Xavier Demaret" a écrit dans le message de 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
"Xavier Demaret" <xavier.demaret@adamentium.com> a écrit dans le message de
news: c7aeeq$o6o$1@eerie.ema.fr...
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
"Xavier Demaret" a écrit dans le message de 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