[java] filtrer des octets

Fermé
karine - 25 avril 2005 à 12:05
 karine - 26 avril 2005 à 12:01
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 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
25 avril 2005 à 15:23
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
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 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
26 avril 2005 à 11:07
qu'utilise tu comme objet pour lire les octets?

0
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 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
26 avril 2005 à 11:19
c'est quoi sout comme type d'objet?
0
Pardon, j'avais oublié le sout.

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

Est-ce que ça t'éclaire un peu plus ?
0
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 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
26 avril 2005 à 11:35
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
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