Я работаю над http получить запрос на Android.Ошибка OutOfMemory в ArrayList. Android
Я получаю огромное количество данных json от сервера, строка не может обрабатывать или хранить эти данные и получать OutOfMemory Exception.
Затем я попытался сохранить его в arrayList, который может хранить максимум Integer.Maximum value. , но он получает исключение OutOfMemory при хранении в месте нахождения ~ 8970.
Вот моя ссылка, в которой есть данные json.
http://ec2-50-19-105-251.compute-1.amazonaws.com/ad/Upload/getitemlist10122013035042.txt
вот мой код:
ArrayList<String> newarr = new ArrayList<String>();
try {
URL url = new URL(urlFilePath);
HttpURLConnection urlConnection = (HttpURLConnection) url
.openConnection();
urlConnection.setRequestMethod("GET");
// urlConnection.setDoOutput(true);
// connect
urlConnection.connect();
// Stream used for reading the data from the internet
InputStream inputStream = urlConnection.getInputStream();
// create a buffer...
byte[] buffer = new byte[1024];
int bufferLength = 0;
int check;
while ((bufferLength = inputStream.read(buffer)) > 0) {
String decoded = new String(buffer, 0, bufferLength);
newarr.add(decoded); // OutOfMemory Exception.
}
fileOutput.close();
buffer = null;
inputStream.close();
String path = file.getAbsolutePath();
return path;
} catch (final MalformedURLException e) {
e.printStackTrace();
return "";
} catch (final IOException e) {
e.printStackTrace();
return "";
} catch (final Exception e) {
System.out.println("EXCEPTION:: " + e.getMessage());
e.printStackTrace();
return "";
}
Попробуйте использовать 'StringBuilder' вместо' String' и проверьте, помогает ли это. – Apoorv
Спасибо за ваш ответ. Я попробовал только сейчас, но это не сработало. получив ту же ошибку. – user2085965
Попробуйте прокомментировать 'newarr.add (decoded);' и посмотреть, продолжает ли он сбой. – Apoorv