OutOfMemoryError: Java heap space内存溢出加内存无用,何解?
侧边栏壁纸
  • 累计撰写 57,647 篇文章
  • 累计收到 0 条评论

OutOfMemoryError: Java heap space内存溢出加内存无用,何解?

James
2021-11-04 / 0 评论 / 78 阅读 / 正在检测是否收录...

文件是2907M将近3G的,

上传本地没问题,就是传到B2就报这错了

代码里面是传到本地后,再传到b2

意思就是在本地中转了一下

idea里面也设置了启动参数-Xmx2907m-Xms2907m-XX:NewRatio=4

求大佬指点

@Override
publicCommonResindex(MultipartFile[]zipFile){

  Stringtimepath="dw";
  List<String>list=new  ArrayList<String>();
  for(inti=0;i<zipFile.length;i++){

    try{
      //保存文件
      Fileret=saveFile(zipFile[i],timepath);
      //拿post过来的文件md5值
      FileInputStreamfis=newFileInputStream(ret);
      Stringmd5var=org.apache.commons.codec.digest.DigestUtils.md5Hex(fis);
      fis.close();//关闭流
      Stringpathvsname=timepath+"/"+ret.getName();
          //传到b2
          this.uploadFile(ret,timepath);
          System.out.println("传到B2,返回内存信息:"+pathvsname);
          //返回路径
          list.add("https://xxx.com/"+ret.getName());


      //uploadFile(dest);



    }catch(IOExceptione){
      e.getMessage();
    }
  } <P></P> <BR> -----------------------------------------------------<BR> **网友回复**:

你堆内存和文件一样大,合着其他东西不需要内存是吧


网友回复:

引用:CMBCHINA发表于2021-11-410:32

java支持分块上传大兄弟


网友回复:

引用:darius发表于2021-11-410:28

报错的堆栈信息发下


网友回复:

引用:朕的大清完了?发表于2021-11-410:37

怎么弄,b2好像不能分块上传的吧,本地上传没问题


网友回复:

引用:CMBCHINA发表于2021-11-410:43

像大文件都是分片传送的,并不是说送到服务端是一个一个的,

而是在java将文件切块,然后wirte一块以后f...


网友回复:

你用bufferedinputstream把fileinputstream包装下,整个缓冲区


网友回复:

引用:darius发表于2021-11-411:04

你用bufferedinputstream把fileinputstream包装下,整个缓冲区


网友回复:

jvm是分区垃圾回收的你一个文件就把所有占满了你不炸谁炸

0