java文件分割合并_java实现文件分割与合并 类示例源码
【实例简介】
【实例截图】
【核心代码】
package cn.part.com;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class LargeMappedFiles {
public static void splitFile(File file, int size,String path) throws Exception {
if (size <= 0) {
size = 1024;
}
if (!file.isFile()) {
throw new Exception("file not exists" path file.getName());
}
String filename = path file.getName();
File filetmp = new File(filename "_" 0 ".zip");
if (filetmp.isFile()) {
throw new Exception("file exists" path file.getName());
}
byte[] buf = new byte[1024 * 10];
FileInputStream fis = new FileInputStream(file);
int readsize = 0;
int pos = 0;
int k = 0;
int m = -1;
File fileout = null;
FileOutputStream fos = null;
while ((readsize = fis.read(buf, 0, buf.length)) > 0) {
if (k != m) {
if (fos != null) {
fos.close();
fos = null;
}
m = k;
fileout = new File(filename "_" k ".zip");
fos = new FileOutputStream(fileout);
}
fos.write(buf, 0, readsize);
fos.flush();
pos = readsize;
if (pos > size * (k 1)) {
k ;
}
}
if (fos != null) {
fos.close();
fos = null;
}
fis.close();
}
// 合并文件
public static void combination(File file) throws Exception {
String filename = file.getAbsolutePath();
File fileout = new File(filename);
if (fileout.isFile()) {
throw new Exception("file exists" fileout.getAbsolutePath());
}
FileOutputStream fos = new FileOutputStream(fileout);
int k = 0;
File filein = null;
FileInputStream fis = null;
byte[] buf = new byte[1024 * 10];
while (true) {
if (fis != null) {
fis.close();
fis = null;
}
filein = new File(filename "_" k ".zip");
if (!filein.isFile()) {
break;
}
fis = new FileInputStream(filein);
int readsize = 0;
while ((readsize = fis.read(buf, 0, buf.length)) > 0) {
fos.write(buf, 0, readsize);
fos.flush();
}
k ;
}
if (fis != null) {
fis.close();
fis = null;
}
fos.close();
}
public static void main(String[] args) throws Exception {
//splitFile(new File("E:\\downlaod\\c\\inventory.local.debug.zip"),4922765,"E:\\downlaod\\");
combination(new File("E:\\downlaod\\inventory.local.debug.zip"));
}
}
java文件分割合并_java实现文件分割与合并 类示例源码相关推荐
- java实现多媒体播放器_Java swing实现简单的视频多媒体播放器源码附带视频指导运行教程...
<p> <span style="font-family:微软雅黑;font-size:19px;color:#666666;background-color:#FFFFF ...
- java随机猜数_java产生随机数且猜数字游戏(源码)
java产生随机数且猜数字游戏(源码) java产生随机数且猜数字游戏(源码) package 第二次作业; import java.util.Random; ...
- java贪吃蛇代码_java实现贪吃蛇游戏代码(附完整源码)
先给大家分享源码,喜欢的朋友点此处下载. 游戏界面 GUI界面 java实现贪吃蛇游戏需要创建一个桌面窗口出来,此时就需要使用java中的swing控件 创建一个新窗口 JFrame frame = ...
- 基于java项目ssm二手书交易平台设计与实现(论文+程序设计源码+数据库文件)
1 绪论 4 1.1 项目开发背景 4 1.2 项目开发意义 5 1.3 项目主要的内容 5 2 相关技术介绍及系统环境开发条件 6 2.1相关技术介绍 6 2.2系统环境开发条件 7 3 系统的需求 ...
- Java绘画板源码_Java 绘图板 示例源码下载(画板)
Java 绘图板 示例源码下载(画板) java 2020-8-21 下载地址 https://www.codedown123.com/36795.html package minidrawpad; ...
- vue - element <upload> 组件批量上传文档,可携带其他表单数据项一同与文件 “手动提交“ 服务器(类似百度文库系统批量上传前端界面与逻辑)超详细教程示例源码,提供界面与逻辑完整源码
效果图 本示例使用的是 element 组件库,其实什么组件库都行(逻辑是一样),只要你是 vue.js 项目就能使用本教程. 本文实现了 vue + element 使用 upload 组件批量上传 ...
- android studio生成Jni头文件 java10,java11删除了javah,改用javac直接用源码生成jni头文件。 java8是用javah
android studio生成Jni头文件 鼠标放本地方法上去,点提示来创建. java10,java11及以上 生成jni头文件 java10,java11删除了javah.改用javac直接 ...
- Asp.Net Web Api 2 实现多文件打包并下载文件示例源码
前言 最近由于工作和个人事务,站点也好久没更新了,但这并不影响我对.NET的热情.站点的更新工作还是得想办法抽时间来完成的. 提要 今天利用中午的时间来写一篇关于Asp.Net Web Api下载文件 ...
- uniapp - 超详细录音上传功能,点击开始录音 / 最后保存文件上传到服务器功能(附带详细示例源码及整个过程的实现方法,注释详细小白轻松上手改造)全端兼容!
效果图 网上的教程太乱用不了,无法改造成自己想要的效果. 在uniapp中开发中,实现点击录音功能,并支持保存录音文件.uniapp编译后全平台兼容通用, 你可以直接复制示例源码,跟着教程一步步配置, ...
最新文章
- Spring Boot 极简集成 Shiro
- 简历英文 计算机水平,计算机英文 简历
- Serverless那么火,2019年的采用如何?
- 好代码是管出来的——Git的分支工作流与Pull Request
- 银行营业网点管理系统——entity类(CityArea)
- Linux下的I/O多路复用select,poll,epoll浅析
- python猴子偷桃_Python实例100个(基于最新Python3.7版本)
- 动态绑数据(GridView控件Header和ItemTemplate)
- POJ 1740 A New Stone Game(博弈)题解
- Python基础:字典(dict)与集合(set)
- Android 开发一定要看的15个实战项目
- 【从零写javaweb框架】(零)前言
- 【JS基础】JavaScript轮播图代码详解
- java mb单位转换_字节、kb、mb等单位,是怎样换算的?
- Multi-Layered Gradient Boosting Decision Trees
- 什么是 GC,有什么作用?
- Docker Wnmp 搭建
- QTableWidget 设置表头颜色
- 灰狼算法(GWO)优化支持向量机的数据回归预测,GWO-SVM回归预测,多输入单输出模型。
- 求二叉树第K层节点个数(递归)
热门文章
- 文末福利|云原生下Java的变化与趋势?程序员为什么不喜欢低代码?答案在这里!...
- Spring-Retry重试实现原理
- 卧槽!竟然可以直接白嫖 Github Action 的 2C7G 服务器!
- RabbitMQ 延迟消息的极限是多少?
- java aop性能检测_Spring AOP 性能监控器
- java 升级1.8_升级系统中的java到1.8版本详解
- 遮挡目标检测优化笔记
- c++ 创建 mat
- c++ #define 预处理器
- Fast_Human_Pose_Estimation_Pytorch