我是Java和Android开发人员。我为一个软件更新应用程序工作,我使用ftp4j项目作为FTP库,但我有一个问题。在获取FTP回复时,在下载结束时我的连接速度很低时,会出现一个奇怪的问题。在底部的代码“int i = reader.read()”不返回任何内容,因此代码不会继续运行。我检查了阅读器是否准备就绪,但是当问题发生时它返回true。我该如何解决这个问题?我现在很无助。以下是代码:
public String readLine() throws IOException {
StringBuffer buffer = new StringBuffer();
int previous = -1;
int current = -1;
do {
int i = reader.read();
if (i == -1) {
if (buffer.length() == 0) {
return null;
} else {
return buffer.toString();
}
}
previous = current;
current = i;
if (/* previous == '\r' && */current == '\n') {
// End of line.
return buffer.toString();
} else if (previous == '\r' && current == 0) {
// Literal new line.
buffer.append(SYSTEM_LINE_SEPARATOR);
} else if (current != 0 && current != '\r') {
buffer.append((char) current);
}
} while (true);
}
P.S:reader是一个InputStreamReader。