文档章节

分割文件

colorlesswind
 colorlesswind
发布于 2016/02/02 15:02
字数 190
阅读 36
收藏 0
/**
	 * Split the specific file into pieces without deleting original file
	 * @param fileName Absolute path of the resource file
	 * @param desPath Destination path for generating the split files
	 * @param splitSize Size of each split part (unit: MB)
	 * @return File objects of the whole split files
	 */
	public ArrayList<File> splitFile(String fileName, String desPath, int splitSize) {
		BufferedInputStream bi = null;
		BufferedOutputStream bo = null;
		try {
			bi = new BufferedInputStream(new FileInputStream(fileName));
			
			ArrayList<File> files = new ArrayList<File>();
			byte [] buf = new byte [1024 * 1024];
			long loopCount = new File(fileName).length() / (1024 * 1024);
			if (loopCount == 0)  //防止文件大小<1MB的情况
				loopCount = 1;
			
			for (int i = 0; i < loopCount; i++) {
				int reLen, count = 1;
				bo = new BufferedOutputStream(new FileOutputStream(desPath + "\\SplitFile_" + (i + 1) + ".part"));
				while ((reLen = bi.read(buf)) != -1) {
					bo.write(buf, 0, reLen);
					count++;
					if (count > splitSize) {
						bo.close();
						break;
					}
				}
				files.add(new File(desPath + "SplitFile_" + (i + 1) + ".part"));
			}
			
			return files;
		} catch (IOException e) {
			throw new RuntimeException("Split file failed");
		} finally {
			try {
				if (bi != null) {
					bi.close();
				}
			} catch (IOException e2) {
				throw new RuntimeException("Close BufferedInputStream failed");
			}

			try {
				if (bo != null) {
					bo.close();
				}
			} catch (IOException e2) {
				throw new RuntimeException("Close BufferedOutputStream failed");
			}
		}
	}


© 著作权归作者所有

共有 人打赏支持
colorlesswind
粉丝 1
博文 40
码字总数 9065
作品 0
广州
私信 提问
文件分割工具--FileSplit

FileSplit 文件分割工具 功能: 可以对任意类型、任意大小的文件进行分割(合并) 特色: 1、分割时,可以指定分割的子块大小、可以按指定份数进行分割, 2、同时可以在分割和合并时进行加密...

scimence
2015/04/05
701
0
Linux - 文件 合并 分割 去重

Linux 文件 合并 拆分 1. 两个文件的交集,并集 2. 两个文件合并 3. 一个文件去掉重复的行: 4. 将一个大的文件分割成多个小文件 1. 两个文件的交集,并集 前提条件:每个文件中不得有重复行...

扫把就是扫把
2016/05/02
127
0
第二十一章 创建任意大小的文件和分隔任意大小的文件:dd命令、split命令、csplit命令

第二十一章 创建任意大小的文件和分隔任意大小的文件:dd命令、split命令、csplit命令 dd命令 名词解释 dd命令用语复制文件,并对原文件的内容进行转换和格式化处理。dd命令功能很强大对于一...

506554897
2018/07/26
0
0
怎么截取视频片段或剪切视频画面

  喜欢看视频的朋友肯定知道,很多电影视频文件所占空间很大,而且一个视频就长达一至两个小时甚至更长。有时候这样的文件在传输或者观看的时候都不太方便,于是小编想到把视频分割,分割后...

萤火的萤火
2018/09/03
0
0
Genesis-3D新手入门——5.动画文件的分割导入

动画文件的分割导入 在设计一个游戏的过程中,动画文件的分割导入技巧是十分必要的,它能帮助你充分利用手中的动画资源以达到设计出最佳游戏效果的目的。 1.找到fbx文件中动画资源。点击下图...

lengche
2013/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate SQLite方言

以下代码有参考过github上国外某位大佬的,在发文的最新稳定版Hibernate上是可用的,有时间再仔细分析一下 import org.hibernate.dialect.Dialect;import org.hibernate.dialect.function.S...

CHONGCHEN
32分钟前
1
0
CentOS 7 MariaDB搭建主从服务器

本文编写环境为CentOS7。确保关闭SELinux,关闭防火墙或者防打开指定端口。具体信息如下 #master[root@promote ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [r...

白豆腐徐长卿
今天
9
0
介绍python中运算符优先级

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部...

问题终结者
今天
3
0
Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

程序猿DD
昨天
9
0
SpringSecurity认证流程源码级详解

SpringSecurity认证流程源码级详解 认证流程说明 认证结果如何在多个请求之间共享 获取认证用户信息

chendom
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部