一次读取所有输入流
2022-09-02 04:43:42
我开发了一个j2me应用程序,它通过套接字连接到我的虚拟主机服务器。我使用自己的扩展lineReader类从服务器读取响应,该类扩展了基本的InputStreamReader。如果服务器发送 5 行答复,则逐行读取服务器答复的语法为:
line=input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
line = line + "\n" + input.readLine();
在这种情况下,我可以编写此语法,因为我知道有固定数量的回复。但是如果我不知道行数,并且想一次读取整个输入流,我应该如何修改当前函数。下面是该函数的代码: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();
}