我開發了一個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