2017-12-11 24 views
-1

Ich arbeite gerade an einem Java-Programm, um Daten von einem Internet-Gerät zu erhalten.Java Socket Datenverarbeitung

Der Anschluss und die Initialisierung bereits arbeitet wie erwartet, aber wenn ich möchte die Daten verarbeiten, die ich erhielt, geschieht etwas Seltsames ...

Exception in thread "main" java.lang.NullPointerException 

dieser Fehler mit dem folgenden Code entsteht, wenn ich will zum Drucken der empfangenen Socket-Info:

static String tempstring; 
     while((tempstring = reader.readLine()) != null){ 
      System.out.println("Client: " + tempstring); 
     } 

     System.out.print(tempstring); 

Die Sache ist, innerhalb der While-Schleife die Daten korrekt empfangen werden. Danach sind die Daten in der Druckfunktion der letzten Zeile nicht mehr verfügbar. Weiß jemand was ich falsch mache?

+1

'static String tempString;' kann nicht kompiliert werden, wenn in einem Verfahren entfernt. Bitte poste den echten Code. – davidxxx

+0

aber Ihre Schleife wird nur beendet, wenn 'tempstring == null ', also natürlich ist es Null in der letzten Zeile. –

Antwort

0

Es scheint, als ob Sie versuchen, null Wert zu drucken, da Sie für jede Iteration eine Zeile von reader lesen und somit null erhalten, wenn Sie die while-Schleife verlassen. Sie müssen jede Zeile, die Sie lesen, verketten, um sie später zu verwenden. So etwas wie dies funktioniert:

String tempstring; 
String readerData = ""; 
while((tempstring = reader.readLine()) != null){ 
     readerData += tempstring; 
     System.out.println("Client: " + tempstring); 
} 
System.out.print(readerData); 
+0

hat den Job für mich gemacht, vielen Dank! Ich weiß jetzt, was ich falsch gemacht habe! :) Vielen Dank! –