我开发了一个j2me应用程序,它通过套接字连接到我的虚拟主机服务器。我使用扩展了基本InputStreamReader的扩展lineReader类从服务器读取响应。如果服务器发送5行答复,通过线读取服务器答复线的语法是:一次读取inputStream
line=input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
在这种情况下,因为我知道有答复的固定编号i可以写此语法。但是如果我不知道行数,并且想要一次读取整个inputStream,那么我应该如何修改当前的readLine()
函数。以下是该功能的代码:
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();
}
但它可用于j2me平台吗? – 2011-04-22 01:43:09
@ Coding-Freak:对不起,我错过了;我对J2ME平台有点无知,所以我用我所知道的最好的祝福更新了我的答案,祝你好运。 – 2011-04-22 01:46:30
我只是想修改我目前正在使用的readLine()函数,以便能够一次读取整个流。希望你理解这个问题。 – 2011-04-22 01:52:09