大文件拆分为小文件进行上传 java

来源:互联网 发布:java软件设计师培训 编辑:程序博客网 时间:2024/05/29 02:18

原因:文件大于3M直接上传服务器,文件太大服务器直接直接接收不了,所以进行文件拆分;

拆分重点:读和写用到的函数----读用FileInputStream,写用FileOutputStream!

//输入:大文件路径File taskfile = new File(taskfilePath);InputStream file = new FileInputStream(taskfile);//分批次上传任务try {long allSize = fileSize(taskfile);//UploadPartSize:拆分的小文件大小 long num = allSize/UploadPartSize;if(allSize%UploadPartSize != 0)num++;for(int i=0;i<num;i++) {//上传任务offset = i*UploadPartSize;last="0";int partSize = UploadPartSize;if(i==num-1) {last = "1";partSize = (int)allSize%UploadPartSize;}byte[] buffer = new byte[partSize];file.read(buffer);File bufferStr = new File(zipfilePath + File.separator + "buffer");if(!bufferStr.exists())bufferStr.createNewFile();//如果用下面的writeoutput,写入的大小总小于buffer的大小,不知道原因..切记只用fileoutput;//或者说读写要用一套函数,不要乱用!读用FileInputStream,写用FileOutputStream!//OutputStream out = new WriterOutputStream(fw);OutputStream out = new FileOutputStream(bufferStr);out.write(buffer);out.flush();out.close();//上传操作**********}//校验总的上传的文件大小**********  } catch (Exception e) {e.printStackTrace();}


                                             
0 0