A voir également:
- [java] probleme avec InputStream
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java décompiler - Télécharger - Langages
12 réponses
Utilisateur anonyme
28 juin 2005 à 10:54
28 juin 2005 à 10:54
A ta place, je créerai une classe qui étend la classe Thread.
Exemple:
Modifie ceci dans ton code:
De cette manière, tu gardes une copie de l'input complet dans le thread et celui-ci effectue le traitement voulu de manière synchronisée.
;-)
HackTrack
Exemple:
public class HandlingThread extends Thread { private StringBuffer buffer; private String lineToHandle; private boolean isActive; public HandlingThread() { super(); isActive = false; } public void run() { isActive = true; while (isActive) { if(lineToHandle!=null){ handleInput(lineToHandle); lineToHandle=null; } } } private void handleInput(String input){ //A implémenter par toi } public synchronized void addLine(String text){ lineToHandle = text; buffer.append(lineToHandle); buffer.append("\n\r"); } }
Modifie ceci dans ton code:
InputStream i = socket.getInputStream(); HandlingThread hTh = new HandlingThread(); hTh.start(); while (true) { str=readLine(fromWebBin); hTh.addLine(str); }
De cette manière, tu gardes une copie de l'input complet dans le thread et celui-ci effectue le traitement voulu de manière synchronisée.
;-)
HackTrack
TuXor
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
25
24 mai 2005 à 15:32
24 mai 2005 à 15:32
Salut, tu peux deja essayer de faire au plus simple,
par exemple de copier les données dans un tampon avant de les utiliser; et ainsi pouvoir les dupliquer a volonté.
si tu peux les récuperer sous forme de string, il ne devrait pas y avoir de problème.
En espérant ne pas dire de conneris ^^'
par exemple de copier les données dans un tampon avant de les utiliser; et ainsi pouvoir les dupliquer a volonté.
si tu peux les récuperer sous forme de string, il ne devrait pas y avoir de problème.
En espérant ne pas dire de conneris ^^'
Mais moi je tiens à avoir un InputStream.
Je crois que je vais modifier mon constructeur pour qu'il renvoie ce qu'il a lu au deuxième.
Ca pourrait marcher ...
Merci quand meme TuXor !
Je crois que je vais modifier mon constructeur pour qu'il renvoie ce qu'il a lu au deuxième.
Ca pourrait marcher ...
Merci quand meme TuXor !
En fait, je suis un peu bloquée.
J'ai donc ça :
Comment je peux faire pour sauvegarder le str dans un truc du genre outputstream pour ensuite le retransformer en inputstream pour le deuxieme traitement ?
Je sais pas si je suis très claire ...
Merci beaucoup !
J'ai donc ça :
InputStream i = socket.getInputStream(); fromWebBin = new DataInputStream(new BufferedInputStream(i)); while (true) { str=readLine(fromWebBin); }
Comment je peux faire pour sauvegarder le str dans un truc du genre outputstream pour ensuite le retransformer en inputstream pour le deuxieme traitement ?
Je sais pas si je suis très claire ...
Merci beaucoup !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
24 mai 2005 à 20:42
24 mai 2005 à 20:42
c'est en effet un peu confus ...
Essayons de clarifier un peu ...
J'ai un inputStream, que j'utilise d'abord avec fromWebBin pourle lire et faire un certain traitement dessus que je ne vous ai pas mis ici.
Et avec ce même inputStream, je voudrais appeler le constructeur de ma classe Interpreteur.
Problème !
input est vide ! Le premier traitement a "aspiré" toutes les données.
Ce que je voudrais faire :
faire passer les infos lues par fromWebBin à mon Interpreteur sous forme d'un InputStreamReader.
Est-ce que c'est plus clair ? Et comment faire ça ?
Merci !
J'ai un inputStream, que j'utilise d'abord avec fromWebBin pourle lire et faire un certain traitement dessus que je ne vous ai pas mis ici.
InputStream i = socket.getInputStream(); fromWebBin = new DataInputStream(new BufferedInputStream(i)); while (true) { str=readLine(fromWebBin); }
Et avec ce même inputStream, je voudrais appeler le constructeur de ma classe Interpreteur.
InputStreamReader input = new InputStreamReader(i); Interpreteur interprete = new Interpreteur(input, url);
Problème !
input est vide ! Le premier traitement a "aspiré" toutes les données.
Ce que je voudrais faire :
faire passer les infos lues par fromWebBin à mon Interpreteur sous forme d'un InputStreamReader.
Est-ce que c'est plus clair ? Et comment faire ça ?
Merci !
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
25 mai 2005 à 10:30
25 mai 2005 à 10:30
Salut
il est fort probable que c'est un problème de visibilité... voir oùtu as déclaré ton inputstream. Peut être est-il nécessaire de le déclarer en attribut de classe et non pas dans une méthode.
il est fort probable que c'est un problème de visibilité... voir oùtu as déclaré ton inputstream. Peut être est-il nécessaire de le déclarer en attribut de classe et non pas dans une méthode.
J'ai trouvé une technique qui pourrait peut etre marcher mais j'ai une erreur à la compilation.
et là j'ai l'erreur :
Sources/Clients.java:391: warning: [unchecked] unchecked conversion
found : java.util.Enumeration
required: java.util.Enumeration<? extends java.io.InputStream>
SequenceInputStream poeme = new SequenceInputStream(listeFlux);
^
1 warning
Est-ce que quelqu'un comprends ce que ça veut dire?
merci
InputStream i = socket.getInputStream(); fromWebBin = new DataInputStream(new BufferedInputStream(i)); Vector<String> vecFlux = new Vector<String>(); while (true) { str=readLine(fromWebBin); vecFlux.add(str); } Enumeration listeFlux = vecFlux.elements(); SequenceInputStream poeme = new SequenceInputStream(listeFlux); InputStreamReader input = new InputStreamReader(poeme); Interpreteur interprete = new Interpreteur(input, url);
et là j'ai l'erreur :
Sources/Clients.java:391: warning: [unchecked] unchecked conversion
found : java.util.Enumeration
required: java.util.Enumeration<? extends java.io.InputStream>
SequenceInputStream poeme = new SequenceInputStream(listeFlux);
^
1 warning
Est-ce que quelqu'un comprends ce que ça veut dire?
merci
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
25 mai 2005 à 11:44
25 mai 2005 à 11:44
salut
ton objet SequenceInpustream attend-t'il bien un objet de type énumaration dans son constructeur ?
ton objet SequenceInpustream attend-t'il bien un objet de type énumaration dans son constructeur ?
choubaka
Messages postés
39420
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
19 février 2025
2 104
25 mai 2005 à 11:49
25 mai 2005 à 11:49
c'est ça ..
<? extends java.io.InputStream>
que je comprends pas dans l'erreur
<? extends java.io.InputStream>
que je comprends pas dans l'erreur