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

  FORUM HardWare.fr
  Programmation
  Java

  Fluxs Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fluxs Java

n°1807276
bigears
Posté le 01-11-2008 à 17:05:04  profilanswer
 

Bonjour,
 
Je ne maîtrise pas bien les InputStream et les OutputStream de java.io
 
Dans mon appli (un proxy HTTP), j'ai une méthode

Code :
  1. void filter(InputStream in,OutputStream out)

qui applique un ensemble de filtres et modifie le OutputStream.
 
mon but est celui-ci :

Code :
  1. InputStream(in) --->  [Filtre1] -> [Filtre2] -> ... -> [Filtren] ---> OutputStream(out)


 
Comment puis-je faire ceci avec les InputStream/OutputStream?
J'ai vu qu'il y a les PipedInputStream PipedOutputStream, mais j'ai du mal à voir comment les utiliser avec "in" et "out"
 
 
merci de vos réponses

mood
Publicité
Posté le 01-11-2008 à 17:05:04  profilanswer
 

n°1807277
masklinn
í dag viðrar vel til loftárása
Posté le 01-11-2008 à 17:09:07  profilanswer
 

Il n'y a que des filtres appliqués entre les données de l'IS et les données de l'OS? il n'y a pas de "vraie" opération à un moment?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1807280
bigears
Posté le 01-11-2008 à 17:15:49  profilanswer
 

sisisi,  
en fait j'ai pas été assez clair.
 
Chaque filtre accepte un InputStream et un OutputStream, et est susceptible d'apporter des modifications.
 
merci de ta rapidité

n°1807281
masklinn
í dag viðrar vel til loftárása
Posté le 01-11-2008 à 17:22:27  profilanswer
 

bigears a écrit :

sisisi,  
en fait j'ai pas été assez clair.
 
Chaque filtre accepte un InputStream et un OutputStream, et est susceptible d'apporter des modifications.
 
merci de ta rapidité


Pourquoi chaque filtre accepterait à la fois un IS et un OS? Ca veut pas dire qu'il faut retransformer un OS en IS entre chaque filtre? Pour avoir un truc comme ça:

IS -> [filtre 1] -> OS -- ? -> IS [filtre 2] -> OS -- ? -> IS [filtre 3] -> OS


?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1807282
bigears
Posté le 01-11-2008 à 17:25:43  profilanswer
 

Ouep en fait ça serait ce type chainage qu'il faudrait que je puisse obtenir, mais j'ai du mal a voir comment implémenter ça

n°1807284
masklinn
í dag viðrar vel til loftárása
Posté le 01-11-2008 à 17:28:32  profilanswer
 

bigears a écrit :

sisisi,
en fait j'ai pas été assez clair.

 

Chaque filtre accepte un InputStream et un OutputStream, et est susceptible d'apporter des modifications.

 

merci de ta rapidité


Pourquoi chaque filtre accepterait à la fois un IS et un OS? Ca veut pas dire qu'il faut retransformer un OS en IS entre chaque filtre? Pour avoir un truc comme ça:

IS -> [filtre 1] -> OS -- ? -> IS [filtre 2] -> OS -- ? -> IS [filtre 3] -> OS


?

 

Après je sais pas comment c'est géré exactement chez toi, mais habituellement sur des workflows genre requête/réponse, il y a une stack d'inputstreams, une opération effectuée puis une stack d'outputstream, et donc pour créer tes stack il suffit de faire de la décoration de l'IS ou de l'OS (en fonction du filtrage et des transformations à apporter) en subclassant FilterOuputStream, pour obtenir un truc comme ça:

InputStream  -> [FilterInputStream 1]  -> [filterInputStream 2]  -> [FilterInputStream 3]  -> [FilterInputStream 4] ---
                                                                                                                       ||
                                                                                                                 (InputStream)
                                                                                                                       ||
                                                                                                                       \/
                                                                                                                  [Operation]
                                                                                                                       ||
                                                                                                                 (OutputStream)
                                                                                                                       ||
                                                                                                                       \/
OutputStream <- [FilterOutputStream 1] <- [FilterOutputStream 2] <- [FilterOutputStream 3] <- [FilterOutputStream 4] ---


(dans certains modèles le même objet peut être à la fois un FilterInputStream et un FilterOutputStream, ce qui permet potentiellement de bypasser complètement l'Operation et tous les filtres situés "plus haut" sur la stack, mais pour faire ça en java il faut créer des classes custom dans la mesure où OutputStream et InputStream sont des classes abstraites et non des interfaces, si je ne m'abuse)


Message édité par masklinn le 01-11-2008 à 17:30:16

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1807288
bigears
Posté le 01-11-2008 à 17:41:55  profilanswer
 

heu... j'ai p-e pas tout saisi sur ton dernier schéma mais je ne crois pas que ça corresponde à ce que je souhaite.
 
Je voudrais exécuter les filtres en série, les uns après les autres, l'ordre ayant une importance sur le résultat obtenu.
 
En fait je travaille sur un code existant, et les concepteurs de ce proxy avaient définis leurs propres type d'input/outputStream sans aucun liens avec ceux de java.io. Je souhaite pouvoir utiliser les Input/OutputStream de java.io au sein de mes filtres.

n°1807343
bigears
Posté le 01-11-2008 à 22:15:18  profilanswer
 

bon en fait j'ai résolu mon problème. Je suis passé par les PipedInputStream / PipedOutputStream.  
 
 
A la fin je recopie le dernier PipedInputStream dans le OutputStream


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

  Fluxs Java

 

Sujets relatifs
JAVA + NETBEANS + ACCESSformulaire en Flash, traitement en Java, retour vers Flash
[Résolu] Paramétrer le "Java heap space" sur TomcatWeb services en Java
Sécurité javaHELP dr java
Versions de Java au sein d'une même releaseHebergeur Java Tomcat
jsp java servlet[Java] probleme reaffichage contentPane
Plus de sujets relatifs à : Fluxs Java


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