InputStreamReader的read()方法不返回任何内容

时间:2011-07-21 11:29:35

标签: java android ftp inputstream

我是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。

0 个答案:

没有答案