Scanner.hasNext() beendet den Thread ohne Message

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo zusammen,
wie der Titel schon sagt, wenn ich einen scanner mit der hasNext() durchschlaufe, hängt sich der ganze Thread plötzlich auf (Programm läuft im Prozess jedoch immernoch).... soviel ich weiss am schluss des Streams.

Code:
Scanner scanner = new Scanner(InputStream);
while (scanner.hasNext())
  myStringBuilder.append(scanner.next());

Wenn ich

ich hoffe ihr könnt mir helfen.
Besten Dank schonmal im voraus!!

gruss
 
Die API-Doku hat gesagt.:
hasNext

public boolean hasNext()

Returns true if this scanner has another token in its input. This method may block while waiting for input to scan. The scanner does not advance past any input.




next

public String next()

Finds and returns the next complete token from this scanner. A complete token is preceded and followed by input that matches the delimiter pattern. This method may block while waiting for input to scan, even if a previous invocation of hasNext() returned true.


Insofern muss man wohl damit rechnen, dass der Scanner sowohl bei hasNext() als auch bei next() möglicherweise wartet, bis neue Daten in den Stream geschrieben werden.
 
Vielen Dank für die Antwort!

Leider nützt mir auch das lange warten nichts...
Im Debugging sehe ich es jetzt, dass er genau dann den Thread beendet, wenn er alle Daten hat.

Ich hoffe jemand kennt das Problem....
Danke für jede Antwort!

gruss
 
Gast hat gesagt.:
Leider nützt mir auch das lange warten nichts...
Im Debugging sehe ich es jetzt, dass er genau dann den Thread beendet, wenn er alle Daten hat.
Der Thread wird eben nicht beendet; vielmehr wartet der Scanner endlos in hasNext(). Was ist denn das für ein Stream, aus dem gelesen wird?
 
hallo murray,

ich greife auf einen Teaspeak-Server zu, von welchem ich die Daten herauslese.
java.io.InputStream übergebe ich dem Scanner Konstruktor.

Wie gesagt, er liest komplett bis zum ende und dann blockiert er...

gruss
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben