gesendeten String einlesen

Status
Nicht offen für weitere Antworten.

Cinimod

Aktives Mitglied
Hallo,

ich verschicke einen String, und möchte ihn jetzt wieder einlesen. Dabei tritt das Problem auf, dass der InputStreamReader behauptet, dass er nicht bereit ist, was man mit inputStreamReader.ready() prüfen kann, d.h. der String wird nicht eingelesen. Lese ich ihn aber mittels eines DataInputStream ein, dann liest er den String...folgender Codeschnipsel soll das ganze verdeutlichen:

Code:
inputStream = streamConnection.openInputStream();
//  dataInput = new DataInputStream(inputStream); //Test
//  System.out.println(" erhält: "+dataInput.readUTF()); //Test
inputStreamReader = new InputStreamReader(inputStream); 
System.out.println(inputStreamReader.ready()); //gleich false


zusammengefasst: dataInputStream auskommentiert funktioniert nicht, bleibt bei inputStreamReader hängen,
aber dataInputStream - mit inputStreamReader auskommentiert - funktioniert.

Wäre für Hilfe sehr dankbar, da ich schon sehr lange versuche dieses Problem zu beheben.


visit: www.dominic.greengecko.org
 
Wenn Du beim Schreiben DataOutputStream verwendest, dann
verwende auch DataInputStream beim Lesen.
Genauso mit anderen Streams.
Ansonsten sorge beim Schreiben dafür, dass alle Schreibpuffer
geleert werden. Klartext: outputStream.flush()

Gruß,
Michael
 
semi hat gesagt.:
Wenn Du beim Schreiben DataOutputStream verwendest, dann
verwende auch DataInputStream beim Lesen.
l

?? Hähh...Warum denn???


Ich würd mit PrintWriter und BufferedReader arbeiten...

Code:
BufferedReader in = new BufferedReader(new InputStreamReader(streamConnection.openInputStream());

Aber das Problem liegt wohl daran, dass der InputStream null ist oder so....Ist das ein Socket...??
Wie wärs mit getInputStream();
 
kann es vielleicht sein, dass dein inputstreamreader auf ein signal ( '\0' oder so ) wartet,
dass keine daten mehr kommen und der thread deshalb blockiert ??
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben