金华app网站开发,动画设计专业就业前景怎么样,网站建设 定制,在国外服务器上做网站项目如何赚钱吗最近遇到一个问题#xff0c;某网盘上传文件时#xff0c;文件大小超过了4个G #xff0c;不能上传#xff0c;所以就想到了利用的java的IO流#xff0c;将文件分割成多个小文件#xff0c;上传到网盘上#xff0c;等到需要用的时候#xff0c;下载下来然后再进行文件的…最近遇到一个问题某网盘上传文件时文件大小超过了4个G 不能上传所以就想到了利用的java的IO流将文件分割成多个小文件上传到网盘上等到需要用的时候下载下来然后再进行文件的合并就可以了。
这里以分割一个8.85M的PDF文件为例分割成每个大小为1M的文件分割文件的大小只需修改size即可代码如下
1.文件的分割
public static void main(String[] args) throws IOException {//要分割出来的文件的大小int size 1024*1024*1;//1MBufferedInputStream in new BufferedInputStream(new FileInputStream(new File(D:\\zzy\\aaaa\\fileSplit\\java.pdf)));int len -1;for (int i 0; i 9; i) { //8.85M的文件分割成8个1M的和一个0.85M的File file new File(D:\\zzy\\aaaa\\fileSplit\\ i temp.temp);//分割的文件格式可以随便设置只要文件合并时名称一致即可FileOutputStream outputStream new FileOutputStream(file);BufferedOutputStream out new BufferedOutputStream(outputStream);int count 0;byte[] bt new byte[1024 * 1024];//每次读取1M,数组大小不能太大会内存溢出通过目标文件大小size判断一下while ((len in.read(bt)) ! -1) {out.write(bt, 0, len);count len;if(countsize) {break;//每次读取1M然后写入到文件中}}out.flush();out.close();outputStream.close();System.out.println(文件已完成 file.getName());}System.out.println(文件已完成分割);}2.文件的合并
public static void main(String[] args) throws IOException {//文件合并BufferedOutputStream out new BufferedOutputStream(new FileOutputStream(new File(D:\\zzy\\aaaa\\fileSplit\\java(merge).pdf)));for (int i 0; i 9; i) { //9个文件合并成8.85M的文件File file new File(D:\\zzy\\aaaa\\fileSplit\\ i temp.temp);FileInputStream inputStream new FileInputStream(file);BufferedInputStream in new BufferedInputStream(inputStream);int len -1;byte[] bt new byte[1024 * 1024];//每次读取1M,数组大小不能太大会内存溢出while ((len in.read(bt)) ! -1) {out.write(bt, 0, len);}in.close();inputStream.close();out.flush();System.out.println(文件已完成 file.getName());}System.out.println(文件已完成合并);}