Метод read () метода InputStreamReader ничего не возвращает - PullRequest
0 голосов
/ 21 июля 2011

Я разработчик для Java и Android.Я работаю в приложении для обновления программного обеспечения и использую проект ftp4j в качестве библиотеки FTP, но у меня есть проблема.Когда скорость моего соединения низкая в конце загрузки при получении ответа FTP, возникает странная проблема.В кодах внизу «int i = reader.read ()» ничего не возвращает, поэтому коды не продолжают работать.Я проверил, готов ли ридер или нет, но он возвращает истину, когда возникает проблема.Как я могу исправить эту проблему?Я так беспомощен сейчас.Вот коды:

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);
}

PS: читатель является InputStreamReader.

...