Flux d'entrée [Résolu]

Signaler
Messages postés
83
Date d'inscription
samedi 21 janvier 2006
Statut
Membre
Dernière intervention
9 décembre 2006
-
Messages postés
194
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
1 mai 2009
-
bonjour;
comment récuperer unflux d'entrée en String non pas en caractère
merci

3 réponses

Messages postés
194
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
1 mai 2009
31
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
Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
4
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();
Messages postés
83
Date d'inscription
samedi 21 janvier 2006
Statut
Membre
Dernière intervention
9 décembre 2006
1
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