He desarrollado una aplicación j2me que se conecta a mi servidor de alojamiento web a través de sockets. Leí las respuestas del servidor usando mi propia clase de lineReader extendida que amplía el InputStreamReader básico. Si el servidor envía 5 líneas de respuestas, la sintaxis para leer la línea de respuestas de servidor mediante la línea es:Lectura de un inputStream todo de una vez
line=input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
En este caso, puedo escribir esta sintaxis porque sé que hay un número fijo de respuestas. Pero si no sé el número de líneas y quiero leer todo el inputStream a la vez, ¿cómo debo modificar la función actual readLine()
? Aquí está el código de la función:
public String readLine() throws IOException {
StringBuffer sb = new StringBuffer();
int c;
while ((c = read()) > 0 && c != '\n' && c != '\r' && c != -1) {
sb.append((char)c);
}
//By now, buf is empty.
if (c == '\r') {
//Dos, or Mac line ending?
c = super.read();
if (c != '\n' && c != -1) {
//Push it back into the 'buffer'
buf = (char) c;
readAhead = true;
}
}
return sb.toString();
}
pero está disponible para la plataforma j2me? –
@ Coding-Freak: lo siento, me lo perdí; Soy un tanto ignorante sobre la plataforma J2ME, así que actualicé mi respuesta con lo mejor que sé, buena suerte. –
Solo quiero modificar mi función 'readLine()' actualmente en funcionamiento para poder leer todo el flujo de una sola vez. Espero que entiendas la pregunta. –