java.lang.OutOfMemoryError 用于在 FileOutputStream 中写入 InputStream
java.lang.OutOfMemoryError for writing of InputStream in 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;
- 进口org.apache.http.NameValuePair;
- 导入javax.net.ssl.*;
- 进口java.io.*;
- 进口java.net.*;
- 导入
java.security.cert.X509证书;
- 导入
java.text.SimpleDateFormat;
- 进口java.util.Date;
- 导入
java.util.List;导入 java.util.Locale;
可能是因为您请求的内存块太大,而 phone 没有足够大的连续块来分配它,这就是它给出 Outofmemoryerror 的原因。尝试降低块大小
您正在使用 Splunk Mint 监控应用程序。该错误存在于 Splunk 的代码中:它试图创建一个包含流的全部内容的字符串,谁知道是为了什么,这就是导致应用 运行 内存不足的原因。必须有一种方法来限制 Splunk Mint 捕获的流部分的大小,或者完全禁用此特定功能。
我看不懂,我做错了什么:
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;
- 进口org.apache.http.NameValuePair;
- 导入javax.net.ssl.*;
- 进口java.io.*;
- 进口java.net.*;
- 导入 java.security.cert.X509证书;
- 导入 java.text.SimpleDateFormat;
- 进口java.util.Date;
- 导入 java.util.List;导入 java.util.Locale;
可能是因为您请求的内存块太大,而 phone 没有足够大的连续块来分配它,这就是它给出 Outofmemoryerror 的原因。尝试降低块大小
您正在使用 Splunk Mint 监控应用程序。该错误存在于 Splunk 的代码中:它试图创建一个包含流的全部内容的字符串,谁知道是为了什么,这就是导致应用 运行 内存不足的原因。必须有一种方法来限制 Splunk Mint 捕获的流部分的大小,或者完全禁用此特定功能。