Bei Zeilenumbruch aufhören

Snaeng

Grünschnabel
Also öhm. Bin neu hier und auch neu mit Java, also nich gleich ausschlachten *g*

Ich versuch mir ne kleine Socket Klasse zu schreiben, geht auch soweit ganz gut.
Nun will ich mit einer Funktion die Daten des sockets bis zum nächsten Zeilenumbruch abrufen, und habe mir gedacht, immer Zeichen für Zeichen zu nehmen bis ein \n kommt.
Nur leider geht das nicht ganz so, wie ich es mir gedacht hatte:

Code:
public String getline()
  throws Exception
  {
  	try {
  		String data = new String("");
  		String tmp = "";
  		int len;
  		buffer = new byte[1];
  		while (tmp != "\n") {
  			if ((len = in.read(buffer)) == -1) {
  				throw new Exception("Socket beendet.");
  			}
  			tmp = new String(buffer);
  	  		data += tmp;
  		}
  		return data;
  	} catch (IOException error) { throw error; }
  }

Leider geht das nich.. ich bekomm einfach nichts Returnt, also die if bleibt Unendlich.
Ich weiß leider nich warum, hab auch schon bissl herrumprobiert, mit "\r" und was weiß ich..
Weiß jemand rat?
 
Zuletzt bearbeitet:
Unter der Annahme das du dir dein InputStream in via Socket.getInputStream()
holst, könntest du es mit dem folgenden probieren:

Code:
public String getline()
  throws Exception
  {    
        try {
                StringBuffer data = new StringBuffer("");
                int len;
                int buffer;
                while ((buffer = in.read()) != -1) {
                        data.append((char)buffer);
                        if (buffer == '\n') {
                                return data.toString();
                        }
                }
                throw new Exception("End of Inputstream");
        } catch (IOException error) { throw error; }
  }
}

Gruß

RedWing
 
Zuletzt bearbeitet:
Zurück