[java] récupérer une String à partir d'un InputStream...

récupérer une String à partir d'un InputStream... [java] - Java - Programmation

Marsh Posté le 10-07-2002 à 16:56:37    

vraiment, j'y arrive pas, Java est tellement moisi à ce niveau là que je sais pas le truc tout con pour récupérer une String en ayant un InputStream. Alors SVP, aide moi un peu, sinon je vais péter les plombs !
merci


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 10-07-2002 à 16:56:37   

Reply

Marsh Posté le 11-07-2002 à 04:31:21    

Code :
  1. in = new BufferedReader( new InputStreamReader(socket.getInputStream()));
  2. ...
  3. in.readLine();

Reply

Marsh Posté le 11-07-2002 à 07:46:04    

thx, c ce que j'ai fait. En fait, ça marche pas dans mon cas précis, c pour ça que ça m'étonnait. Mais de manière générale, c comme ça qu'il faut faire je pense.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 11-07-2002 à 08:37:09    

t'ain, lis la javadoc, au lieu de dire des inepties comme "java est tellement moisi à ce niveau là"...
 
Dans la javadoc de InputStream :
 
 

Code :
  1. int available()
  2.           Returns the number of bytes that can be read (or skipped over) from this input stream without blocking by the next caller of a method for this input stream.  void close()
  3.           Closes this input stream and releases any system resources associated with the stream.  void mark(int readlimit)
  4.           Marks the current position in this input stream.  boolean markSupported()
  5.           Tests if this input stream supports the mark and reset methods. abstract  int read()
  6.           Reads the next byte of data from the input stream.  int read(byte[] b)
  7.           Reads some number of bytes from the input stream and stores them into the buffer array b.  int read(byte[] b, int off, int len)
  8.           Reads up to len bytes of data from the input stream into an array of bytes.  void reset()
  9.           Repositions this stream to the position at the time the mark method was last called on this input stream.  long skip(long n)
  10.           Skips over and discards n bytes of data from this input stream.

 
 
 
donc, tu peux faire un truc du genre (c une méthode de brute) :
 
si in est ton inputstream :

Code :
  1. byte[] ba = new byte[in.available()];
  2. in.read(ba);
  3. String str = new String(ba);

 
 
et voilà le travail.

Reply

Marsh Posté le 11-07-2002 à 09:32:07    

j'ai pas honte de dire que java est moisi au niveau de la gestion des flux, c'est très complexe. En tout cas, c'est loin d'être intuitif. Parce que si toi tu considères que les flux imbriqués c simple, alors chapeau. Moi je trouve ça très lourd.
 
ceci-di, j'avait un byte[] en entrée, j'ai juste fait String truc = new String( monTableauDeByte );


Message édité par z0rglub le 11-07-2002 à 09:33:32

---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 11-07-2002 à 12:56:25    

z0rglub a écrit a écrit :

j'ai pas honte de dire que java est moisi au niveau de la gestion des flux, c'est très complexe.



Des goûts et des couleurs...
 
un code du genre:

Code :
  1. ZipInputStream zis=new ZipInputStream(new BufferedInputStream(new FileInputStream(fileName)));


D'un coup de cuiller on lit un flux, on le bufferise et on le zippe.  
Dans le genre clair et concis c'est plutôt réussi non ?

Reply

Marsh Posté le 11-07-2002 à 12:59:10    

sans polémiquer vu que ca m'attire les foudres de certains j'ai une question à poser. Si tu dis que c'est moisi ce qui est parfaitement ton droit, cela signifie que tu connais un moyen plus simple (moins moisi) pour gérer les flux. Pourrais tu nous le décrire stp?
 
(pas de polémique)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 11-07-2002 à 13:13:59    

DarkLord a écrit a écrit :

sans polémiquer vu que ca m'attire les foudres de certains j'ai une question à poser. Si tu dis que c'est moisi ce qui est parfaitement ton droit, cela signifie que tu connais un moyen plus simple (moins moisi) pour gérer les flux. Pourrais tu nous le décrire stp?
 
(pas de polémique)



:D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 11-07-2002 à 13:58:02    

DarkLord a écrit a écrit :

sans polémiquer vu que ca m'attire les foudres de certains j'ai une question à poser. Si tu dis que c'est moisi ce qui est parfaitement ton droit, cela signifie que tu connais un moyen plus simple (moins moisi) pour gérer les flux. Pourrais tu nous le décrire stp?
 
(pas de polémique)




j'ai programmé en C, c plus simple
en C++, idem avec la STL
en PHP, c trivial
le but étant toujours le même, récupérer dans une variable le contenu d'un fichier par exemple.
 
Ce que je veux faire comprendre, c'est que Java propose p-e des outils (classes) puissants pour gérer les flux, mais que par ailleurs, c'est pas simple de s'en servir, et je le regrète. A chaque fois que j'en ai besoin, je lutte (oui, ok, je suis une grosse merde en programmation aussi) pour faire le moindre truc.
 
Voilà


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 11-07-2002 à 14:20:58    

z0rglub a écrit a écrit :

 
j'ai programmé en C, c plus simple
en C++, idem avec la STL
en PHP, c trivial
le but étant toujours le même, récupérer dans une variable le contenu d'un fichier par exemple.
 
Ce que je veux faire comprendre, c'est que Java propose p-e des outils (classes) puissants pour gérer les flux, mais que par ailleurs, c'est pas simple de s'en servir, et je le regrète. A chaque fois que j'en ai besoin, je lutte (oui, ok, je suis une grosse merde en programmation aussi) pour faire le moindre truc.
 
Voilà




 
ok c'est là où je voulais en venir. Tu n'as pas compris visiblement que la différence fondamentale ici c'est qu'on te fournit le meme système quel que soit l'opération sur le flux à effectuer.
 
Crois que moi que si on avait voulu se limiter à "ouvrir un fichier et lire le contenu dans une string" ce serait bcp plus simple.
 
Est ce aussi simple de :
 

  • Gérer les archives JAR, ZIP, ...
  • Gérer la communication entre machine distante
  • Lire un fichier texte avec un encoding particulier
  • Sauver un fichier avec un encoding particulier
  • ...


avec les autres language ?
 
Faut comparer ce qui est comparalbe. Si tu dis que la gestion des flux en Java est moisie faut pas donner comme seul exemple: "lire un fichier dans une String". Ce genre d'exemples n'est pas vraiment représentatif
 
Sur ce toujours sans polémique ... Je n'attaque ni C, ni C++ ni un autre language. Je défends juste un truc puissant que tu transformes un peu trop vite/facilement en une merde


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 11-07-2002 à 14:20:58   

Reply

Marsh Posté le 11-07-2002 à 14:26:35    

DARKLORD: CASSE TOI
TU ES EN VACANCES, DECROCHE.
ALLEZ
HOP
FILE


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 11-07-2002 à 14:29:25    

DarkLord a écrit a écrit :

Sur ce toujours sans polémique ... Je n'attaque ni C, ni C++ ni un autre language. Je défends juste un truc puissant que tu transformes un peu trop vite/facilement en une merde



je comprends parfaitement ton point de vue. Je suis d'accord, avec Java, tu peux faire des trucs super puissants, mais les trucs simple, tu peux pas les faire "simplement, intuitivement", c ça que je trouve dommage.
En plus je dis pas que java c de la merde, au contraire, j'aime bcp comme language, mais la gestion des flux, je dis que c trop compliqué pour qqun de stupide comme moi.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 11-07-2002 à 14:29:31    

--greg-- a écrit a écrit :

DARKLORD: CASSE TOI
TU ES EN VACANCES, DECROCHE.
ALLEZ
HOP
FILE




 
je ne pars que vendredi à 17h (blabla@inside : il parait que c journée noir samedi :'(


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 11-07-2002 à 14:31:05    

z0rglub a écrit a écrit :

 
je comprends parfaitement ton point de vue. Je suis d'accord, avec Java, tu peux faire des trucs super puissants, mais les trucs simple, tu peux pas les faire "simplement, intuitivement", c ça que je trouve dommage.




 
Ta réaction est normale. En réalité c'est un choix de SUN de faire le maximum de choses d'une manière unifiée, quitte à ce que les choses simples soient un peu plus compliquées. Mais avec de l'XP tu ne feras meme plus attention (regarde le code de gfive, ca se voit qu'il connait le sujet et qu'il est habitué .. .Faut juste un peu de temps c tout)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 11-07-2002 à 14:34:25    

yep, parfaitement d'accord, d'ailleurs je pense surtout qu'il me faudrait un bon "cours" trouvable sur internet sur les flux en java... (si t'as une URL, je suis intéressé).


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed