[java] filtrer des octets

karine -  
 karine -
Bonjour,

Voila mon probleme :

je reçois un flux de données.
Je le lis octet par octet. Comment je peux faire pour filtrer une ligne qui contient le mot Content-Type par exemple ?

Je sais qu'il existe un truc qui s'appelle matcher mais ça marche pas sur les octets.

Est-ce que quelqu'un a déjà fait ce genre de truc ?
A voir également:

9 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
ya un post qui a été mis récemment et qui voulais faire la même chose il me semble, regarde un peu en arrière tu devrai trouver
0
karine
 
J'ai pas trouvé de post qui réponde à ma question ...

Si quelqu'un sait comment faire, ça m'intéresse beaucoup ! ;-)
0
maily Messages postés 7560 Statut Contributeur 453
 
qu'utilise tu comme objet pour lire les octets?

0
karine
 
Je fais :
InputStream entrant = socket.getInputStream();
while ((lus = entrant.read(buffer)) != -1) {	
sout.write(buffer,0,lus);
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maily Messages postés 7560 Statut Contributeur 453
 
c'est quoi sout comme type d'objet?
0
karine
 
Pardon, j'avais oublié le sout.

PrintStream sout = new PrintStream(client.getOutputStream());

Est-ce que ça t'éclaire un peu plus ?
0
karine
 
Sinon j'ai vu sur internet la classe DataInputStream.

Est-ce que quelqu'un la connait ?
Ca pourrait meut etre resoudre mon probleme.
0
maily Messages postés 7560 Statut Contributeur 453
 
utilise plutôt BufferedOutputStream. Ce sera plus facile à gérer par la suite.
et le buffer, c'est quoi? Un tableau de byte?
ce que tu peux faire dans ce cas là, c'est:
String bufferEnChaine="";
while ((lus = entrant.read(buffer)) != -1) {	
           sout.write(buffer,0,lus);
          bufferEnChaine = new String(buffer);
          if(bufferEnChaine.match("content-type"){
                // ton code
         }
}
0
karine
 
C'est pas mal, mais le probleme c'est que bufferEnChaine contient n'importe quoi.

Par exemple, il contient l'entete HTML (ça c'est très bien) mais aussi des bouts de code.

En fait je ne sais jamais ce que va lire chaque boucle, ça peut s'arreter n'importe ou.
0