【问题标题】:java.lang.OutOfMemoryError for writing of InputStream in FileOutputStreamjava.lang.OutOfMemoryError 用于在 FileOutputStream 中写入 InputStream
【发布时间】:2015-03-07 13:51:06
【问题描述】:

我不明白,我做错了什么:

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;

【问题讨论】:

  • 避免在同一操作中赋值和读取值。这只会让你和其他阅读代码的人感到困惑。
  • 是什么让您认为特定的 OME 来自您提到的代码?看起来你正在使用一些库com.splunk.mint.network.io

标签: java out-of-memory inputstream fileoutputstream


【解决方案1】:

您正在使用Splunk Mint 监控应用程序。错误出现在 Splunk 的代码中:它试图创建一个包含流的全部内容的字符串,谁知道是干什么的,这就是导致应用程序内存不足的原因。必须有一种方法来限制 Splunk Mint 捕获的部分流的大小,或完全禁用此特定功能。

【解决方案2】:

可能是因为您请求的内存块太大而手机没有足够大的连续块来分配它,这就是它给出 Outofmemoryerror 的原因。尝试降低块大小

【讨论】:

  • 此代码在使用当前后端 api 的旧项目构建中运行良好,但现在尝试启动旧 java 代码时出现此错误
猜你喜欢
  • 2019-09-06
  • 2014-01-17
  • 2015-08-16
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多