Невозможно выполнить запись в DataOutputStream сверх определенного размера -OutOfMemoryError

У меня есть следующий код, который создает исключение OutOfMemory:

byte[] buf = new byte[10240];
int len = 0;
DataOutputStream dataOS = new DataOutputStream(conn.getOutputStream());
while ((len = _inputStream.read(buf)) > 0) {
    System.out.println("len : " + len);
    System.out.println("Going to write buf into dataOS : " + buf.length);
    dataOS.write(buf, 0, len);
    System.out.println("dataOS.size() : " + dataOS.size());
}
_inputStream.close();

Ниже приведены последние несколько строк из вывода отладки:

len : 10240
Going to write buf into dataOS : 10240
dataOS.size() : 342804702
len : 10240
Going to write buf into dataOS : 10240
dataOS.size() : 342814942
len : 10240
Going to write buf into dataOS : 10240

Исключение возникает, когда я пытаюсь записать в dataOS кроме 342814942.

Может ли кто-нибудь помочь мне справиться с этим?

Спасибо!

5
задан Ram 24 April 2012 в 01:20
поделиться