Android Чтение из входного потока эффективно - PullRequest
143 голосов
/ 22 марта 2010

Я отправляю HTTP-запрос на получение веб-приложения для Android.

Я использую DefaultHttpClient и использую HttpGet для выдачи запроса. Я получаю ответ от сущности и получаю объект InputStream для получения HTML-кода страницы.

Затем я перебираю ответ, выполняя следующие действия:

BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
String x = "";
x = r.readLine();
String total = "";

while(x!= null){
total += x;
x = r.readLine();
}

Однако это ужасно медленно.

Это неэффективно? Я не загружаю большую веб-страницу - www.cokezone.co.uk , поэтому размер файла не большой. Есть ли лучший способ сделать это?

Спасибо

Andy

Ответы [ 12 ]

1 голос
/ 22 марта 2010

Если файл длинный, вы можете оптимизировать код, добавив StringBuilder вместо использования конкатенации строк для каждой строки.

0 голосов
/ 31 декабря 2015

Я использую, чтобы прочитать полные данные:

// inputStream is one instance InputStream
byte[] data = new byte[inputStream.available()];
inputStream.read(data);
String dataString = new String(data);
...