Я не могу понять, что я делаю неправильно:java.lang.OutOfMemoryError для написания InputStream в FileOutputStream
public static void writeToFile(InputStream inputStream, File file) throws IOException, FileNotFoundException {
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file));
try {
int size = 1024 * 1024;
byte[] buf = new byte[size];
int byteRead;
while ((byteRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, byteRead);
}
outputStream.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Исключение:
6157-6185/com.wiserep E/AndroidRuntime﹕ FATAL EXCEPTION:
IntentService[SynchronizationService] java.lang.OutOfMemoryError
at java.lang.String.<init>(String.java:432)
at java.lang.AbstractStringBuilder.toString(AbstractStringBuilder.java:642)
at java.lang.StringBuffer.toString(StringBuffer.java:723)
at com.splunk.mint.network.io.InputStreamMonitor.updateBody(InputStreamMonitor.java:104)
at com.splunk.mint.network.io.InputStreamMonitor.read(InputStreamMonitor.java:71)
at com.wiserep.web.HttpTransport$HttpHelper.writeToFile(HttpTransport.java:196)
библиотеки:
- импорт android.util.Log;
- import org.apache.http.NameValuePair;
- импорт javax.net.ssl. *;
- импорт java.io. *;
- импорт java.net. *;
- импорт java.security.cert.X509Certificate;
- импорт java.text.SimpleDateFormat;
- import java.util.Date;
- импорт java.util.List; import java.util.Locale;
Избегайте назначения и считывания значения в той же операции. Это только смутит вас и всех, кто прочитает код. –
Что заставляет вас думать, что конкретный OME исходит из кода, который вы упомянули? Похоже, вы используете библиотеку 'com.splunk.mint.network.io'. – Santosh