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 + "\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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/124569.html