把大文件切割成小文件

摘要:
=null){//结束资源fis.close();}}catch(IOExceptione){e.printStackTrace();}}}}

package com.jm.label.tools;
/**
* 把大文件切割成小文件
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileSplit {
public static void main(String[] args) {
//调用cutFile()函数 传人参数分别为 (原大文件,切割后存放的小文件的路径,切割规定的内存大小)
cutFile("D:\FTPData\blacklist\2019-03-12-black_tbl_hf.txt", "D:\FTPData\blacklist\123",1024 * 1024 * 30);
}
/**
*
* @param src 需要切割的文件
* @param endsrc 切割后文件的存放路径
* @param num 每个文件的大小
*/
public static void cutFile(String src, String endsrc, int num) {
FileInputStream fis = null;
File file = null;
try {
fis = new FileInputStream(src);
file = new File(src);
//创建规定大小的byte数组
byte[] b = new byte[num]; int len = 0;
//name为以后的小文件命名做准备
int name = 1;
//遍历将大文件读入byte数组中,当byte数组读满后写入对应的小文件中
while ((len = fis.read(b)) != -1) {
//分别找到原大文件的文件名和文件类型,为下面的小文件命名做准备
String name2 = file.getName();
int lastIndexOf = name2.lastIndexOf(".");
String substring = name2.substring(0, lastIndexOf);
String substring2 = name2.substring(lastIndexOf, name2.length());
FileOutputStream fos = new FileOutputStream(endsrc + "\\"+ substring + "-" + name + substring2);
//将byte数组写入对应的小文件中
fos.write(b, 0, len);
//结束资源 fos.close();
name++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
//结束资源
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

免责声明:文章转载自《把大文件切割成小文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇drop column与set unused词语相似度计算下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Error:ServiceStack.Redis.RedisResponseException:“invalid password., sPort: 0, LastCommand: ”

ylbtech-Error:ServiceStack.Redis.RedisResponseException:“invalid password., sPort: 0, LastCommand: ” 1.返回顶部 1、 ServiceStack.Redis.RedisResponseException HResult=0x80131500 Message...

request获取数据的几种方法

1、request.getparameter(); 1//只接收前台穿过来的一个指定的参数2 String value=request.getparameter("key"); 2、request.getParameterMap(); 说白了前端提交到Servlet或者Action里面的参数Map,如果你是以表单提交,那么request.getParam...

C++学习笔记九顺序容器(二) ForFreeDom 博客园

C++学习笔记九-顺序容器(二) - ForFreeDom - 博客园 一、插入操作如何影响容器的选择: 1.list 容器表示不连续的内存区域,允许向前和向后逐个遍历元素。在任何位置都可高效地 insert 或 erase 一个元素。插入或删除 list 容器中的一个元素不需要移动任何其他元素。另一方面,list 容器不支持随机访问,访问某个元素要求...

springboot-quartz 实现动态添加,修改,删除,暂停,恢复等功能

任务相关信息:springboot-quartz普通任务与可传参任务 一、任务实体类 packagecloud.app.prod.home.quartz; importjava.io.Serializable; importjava.util.Date; /*** Author : YongBo Xie </br> * File Nam...

cJSON 使用详解

由于c语言中,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理json。如果有对应的数据结构就方便一些, 如python中用json.loads(json)就把json字符串转变为内建的数据结构处理起来比较方便。     cjson库文件下载:     sourceforge地址     一个重要概念:         在cjson中,js...

Java解决关键路径问题

参考: https://www.cnblogs.com/lishanlei/p/10707808.html https://blog.csdn.net/wang379275614/article/details/13990163  关键路径问题来源于实际的生产活动,是项目管理的经典问题。 在一个复杂的项目中,整体项目的完成依赖与各个子项目的完成,而子项目...