powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream OutOfMemoryError
5 сообщений из 5, страница 1 из 1
Stream OutOfMemoryError
    #34278578
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я новичок в java. Есть потребность забирать xml - файл с сервера, размер файла ~100K.

Вот код:

String Data = null;
try
{
HttpConnection Connection = (HttpConnection)Connector.open("http://.../2006-12-12.xml");
InputStream Stream = Connection.openInputStream();
byte[] Buffer = new byte[1024];
int BytesRead = 0;
try
{
while (true)
{
BytesRead = Stream.read(Buffer);
if (BytesRead > 0)
{
Data += new String(Buffer, "UTF8");
}
else
{
break;
}
}
}
catch (OutOfMemoryError err)
{
Data = "Out of Memory Error!";
}
finally
{
Stream.close();
}
Connection.close();
Form form = new Form("Test");
form.append(Data);
Display.getDisplay(this).setCurrent(form);
}
catch (IOException ioe)
{
throw new MIDletStateChangeException("Network not available");
}

Внутренний try catch блок постоянно выдает OutOfMemoryError, в чем может быть дело?
...
Рейтинг: 0 / 0
Stream OutOfMemoryError
    #34281212
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tassadar77Я новичок в java. Есть потребность забирать xml - файл с сервера, размер файла ~100K.

Data += new String(Buffer, "UTF8");

рискну предположить из за нехватки памяти, т.к. она у тя шахматка...
меняй нафиг эту строчку на StringBuilder . append(...) и будет тебе счастье!
...
Рейтинг: 0 / 0
Stream OutOfMemoryError
    #34281243
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по
Код: plaintext
1.
2.
3.
...
 throw   new  MIDletStateChangeException("Network not available");
...
это J2ME, а значит StringBuilder'а нет.
Зато есть StringBuffer
...
Рейтинг: 0 / 0
Stream OutOfMemoryError
    #34282560
crazytoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все правильно, во время цикла при каждой итерации создается новый объект Стринг, что сильно засоряет память, необходимо более внимательно изучить основы Java, потому как незнание того, что объект String - неизменяемый(не считая хакерских заморочек), может привести вас к подобным граблям. Вывод - конечно используйте StringBuffer
...
Рейтинг: 0 / 0
Stream OutOfMemoryError
    #34290742
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream OutOfMemoryError
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]