java大文件拆分工具(过滤掉表头)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class SplitTools {
public static void main(String[] args) throws IOException {
// "E:\\eutranrelation.csv";
String bigFilePath = args[0];
// "E:\\eutranrelation-%s.csv";
String splitFileParttern = args[1];
//
int splitFileCount = Integer.valueOf(args[2]); BufferedReader reader = new BufferedReader(new FileReader(bigFilePath));
String header = reader.readLine();
int totalLine = 0;
if (header != null) {
String line = null;
while ((line = reader.readLine()) != null) {
totalLine++;
}
} reader.close(); int splitFileTotalLines = totalLine / splitFileCount;
int generateFileIdx = 0; BufferedWriter bufferedWriter = null;
reader = new BufferedReader(new FileReader(bigFilePath));
header = reader.readLine();
int currentIdx = 0;
if (header != null) {
String line = null;
while ((line = reader.readLine()) != null) {
if (currentIdx == 0) {
String filePath = String.format(splitFileParttern,
String.valueOf(generateFileIdx));
bufferedWriter = new BufferedWriter(
new FileWriter(filePath));
} bufferedWriter.write(line + "\r\n"); currentIdx++; if (currentIdx == splitFileTotalLines) {
generateFileIdx++;
if (generateFileIdx != splitFileCount) {
currentIdx = 0;
bufferedWriter.flush();
bufferedWriter.close();
}
}
} if (bufferedWriter != null) {
bufferedWriter.flush();
bufferedWriter.close();
}
} reader.close(); System.out.println("The total number of documents is:" + totalLine);
}
}

Java:大文件拆分工具的更多相关文章

  1. 大文件拆分问题的java实践(附源码)

    引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借 ...

  2. 大文件拆分方案的java实践(附源码)

    引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借 ...

  3. Disruptor的应用示例——大文件拆分

    结合最近Disruptor的学习,和之前一直思考解决的大文件拆分问题,想到是否可以使用Disruptor作为生产者/消费者传递数据的通道呢?借助其高效的传递,理论上应当可以提升性能.此文便是此想法的落 ...

  4. java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架

    产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件. 需求分析 对于 excel 导出,是一个很常见的需求. 最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件. 客 ...

  5. java大文件上传解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  6. 推荐一个大文件查找工具---WizTree

    DB备份.dump.电影等文件多了以后,经常遇到磁盘空间不够用的情况,日积月累本来清晰的目录结构找起来也很费劲,尤其是要查找删除无用的大文件.windows本身那差劲的搜索功能就不提了,从搜索引擎上查 ...

  7. Java class文件分析工具 -- Classpy

    Classpy Classpy是一个图形化的class文件分析工具,功能和javap类似,界面主要參考了Java Class Viewer: 为什么要又一次创造轮子? 写这个工具花了将近一周的时间.那 ...

  8. java 大文件分割与组装

    不多说,直接上代码 1 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; im ...

  9. java 大文件上传 断点续传 完整版实例 (Socket、IO流)

    ava两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...

随机推荐

  1. [转]CentOS7 下安装svn

    1. 安装 centos(我这里使用的是CentOS7)下yum命令即可方便的完成安装 $ sudo yum install subversion 测试安装是否成功: $ svnserve --ver ...

  2. PHP时间类完整实例

    <?php header("Content-type:text/html;Charset=utf-8"); class time{ private $year;//年 pri ...

  3. Jmeter录制浏览器并回放

    确认证书 1.查看证书 进入Jmeter安装目录下的bin,找到ApacheJMeterTemporaryRootCA.crt 证书文件(如jmeter在安装目录中未找到,可尝试先执行下面的开始录制步 ...

  4. python 全栈开发,Day34(基于UDP协议的socket)

    昨日内容回顾 网络的基础概念arp协议 :通过ip地址找到mac地址五层模型 : 应用层 传输层 网络层 数据链路层 物理层tcp协议 : 可靠的 面向连接 全双工 三次握手 四次挥手udp协议 : ...

  5. JavaScript中的短路

    短路:逻辑运算从左到右.逻辑或运算,当左边的条件成立时,后面的条件将不再参与运算. 因此在逻辑或运算中,尽量将条件结果为true的放第一位.而在逻辑与运算中,尽量将条件结果为false的放到第一位. ...

  6. oracle表分区创建

    一.什么是分区表表分区有以下优点: 1.数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高. 2.数据修剪:保存历史数据非常的理想. 3.备份:将大表的数据分成多个文件,方便备份和恢复. ...

  7. PR2017添加字幕文本或文字水印

    1.新建一个文本图层(先点击下右下方区域,避免新建图层是灰色不可用) 2.可以看到已经新建了一个文本图层,然后可以在效果控件修改属性,可以用文字工具在文字的地方进行修改文本.(注意点击T图标才能编辑文 ...

  8. 《JavaScript 高级程序设计》第三章:基本概念

    目录 语法 标识符 严格模式 关键字 保留字 变量 数据类型 运算符 表达式与语句 语法 "语法"指的是一门语言的书写风格,JavaScript 的语法风格很类似于 C 以及 Ja ...

  9. 如何重置mate的面板到初始化时的默认设置?

    在你的任何终端中敲入如下命令: gsettings reset-recursively org.mate.panel

  10. day15--JavaScript

        上节作业回顾 <style></style>代表的是CSS样式 <script></script>代表的是JavaScript样式     1. ...