Flux d'entrée

Résolu
cs_amel2006 Messages postés 83 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 9 décembre 2006 - 29 mars 2006 à 15:09
tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 - 29 mars 2006 à 22:13
bonjour;
comment récuperer unflux d'entrée en String non pas en caractère
merci

3 réponses

tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 50
29 mars 2006 à 22:13
Je pense que ton probleme de blanc vient de l'unicode... en effet, en ASCII (format de representation des caracteres) un caractere prends un octet et en UNICODE (autre format, plus international : gere les accents, caracteres chinois je crois etc) un caractere prends 2 octets.

in.read() meme s'il renvoi un int (4 octets) lit un octet, donc en fait dans ton code, tu lit a chaque fois une moitié de caractere unicode d'où le blanc a chaque fois. Je sais pas s'il y a une methode plus propre que celle que je vais te proposer mais bon, faute de mieux :

c=0;
while (c != -1)
{
//lecture 1ere partie du caracter unicode
c = in.read()<<8;

//lecture de la 2eme partie
c=c | (in.read());

//ton c contient maintenant la valeur du caractere unicode
build.append((char) c);
}

Voila, en esperant avoir résolu ton probleme
3
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
29 mars 2006 à 17:08
Salut,

quel est le pb exactement car on peut construire une String à partir d'un tableau de caractères ou de byte ?

Sinon utilisant InputStreamReader, par ex :
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
String message=in.readLine();
0
cs_amel2006 Messages postés 83 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 9 décembre 2006 1
29 mars 2006 à 21:33
bonjour;
je fait dans mon programme une connexion avec un moteur de recherche et il me rend un fichier texte tel que chaque chaque lettre est séparé par un blanc
voici le code de récupération du flux d'entrée


Code:
,
----

InputStream in = uc.getInputStream();
int c = in.read();
StringBuffer build = new StringBuffer();
while (c != -1)
{
build.append((char) c);
c = in.read();
}

flux.writeChars( line);

et voici une portion de contenue de fichier retourner


Code:
,
----
< h t m l d i r " l t r " > < h e a d > < m e t a h t t p - e q u i v " c o n t e n t - t y p e " c o n t e n t = " t e x t / h t m l ; c h a r s e t = u t f - 8 " / > < m e t a n a m e = " m s . l o c a l e " c o n t e n t = " e n - U S " >


amel2006
0
Rejoignez-nous