[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 ?

9 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   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
  2. karine
     
    J'ai pas trouvé de post qui réponde à ma question ...

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

    0
  4. karine
     
    Je fais :
    InputStream entrant = socket.getInputStream();
    while ((lus = entrant.read(buffer)) != -1) {	
    sout.write(buffer,0,lus);
    }
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

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

    Est-ce que ça t'éclaire un peu plus ?
    0
  8. 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
  9. 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
  10. 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