zoukankan      html  css  js  c++  java
  • Java:大文件拆分工具

    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];
            // 32
            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 + "
    ");
    
                    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);
        }
    }
  • 相关阅读:
    错删表空间的恢复步骤
    如何使用PL/SQL进行远程数据库连接
    Oracle基础笔记
    PL/SQL如何导入dmp文件
    oracle表的基本操作
    sql里面的分页
    truncate table语句和delete table语句的区别
    c++ 时间类型详解 time_t[转]
    C++ 容器:顺序性容器、关联式容器和容器适配器
    XCode 快捷键
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/9808805.html
Copyright © 2011-2022 走看看