保存进度!
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @Author: Kane Wang <wangkane@qq.com>
|
||||
* @Date: 2025-08-08 17:21:32
|
||||
* @LastEditors: Kane Wang
|
||||
* @LastModified: 2025-08-08 19:05:06
|
||||
* @FilePath: src/main/java/com/cpic/xim/App.java
|
||||
* @Description:
|
||||
*
|
||||
* Copyright (c) 2025 by Kane All rights reserved
|
||||
*/
|
||||
package com.cpic.xim;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Hello world!
|
||||
*/
|
||||
public class App
|
||||
{
|
||||
private static final int MAX_LINE_COUNT_PER_FILE = 250000;
|
||||
private static final String TITLE_BDJBXXB = "流水号$保险机构代码$保险机构名称$采集日期$保单编号$虚拟单标志$保单件数$险类$保单团个性质$监管辖区$司法管辖$业务性质$续保标志$被续保保单编号$保单状态$保单终止原因$核保类型$联共保类型$涉农标志$分保标志$统保标志$投保单申请日期$签单日期$核保通过时间$保费收费确认时间$保单生成时间$保单起始日期$保单终止日期$保单中止日期$保单效力恢复日期$保单满期日期$约定分期交费次数$累计保费$交费方式$被保险人数量$保险金额$保险金额币种$保险金额人民币金额$保险费率$基准保费$签单保费$税额$政府补贴保费金额$保费币种$保费人民币金额$管理机构代码$管理机构名称$核保机构代码$核保机构名称$承保地区$争议解决方式$佣金比例$佣金$佣金币种$佣金人民币金额$特别约定标志$特别约定$经办业务标志$经办管理费$医保个人账户购买标志";
|
||||
|
||||
public static void main( String[] args )
|
||||
{
|
||||
String fileNameBDJBXXB = "L:\\east\\MD5_BDJCXX_BDJBXXB_RESULT_3080100.txt";
|
||||
|
||||
com.cpic.xim.east.utils.DataFileSpliter.splitFile( new File( fileNameBDJBXXB ),
|
||||
MAX_LINE_COUNT_PER_FILE,
|
||||
TITLE_BDJBXXB );
|
||||
|
||||
System.out.println( "拆完了!" );
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
/**
|
||||
* @Author: Kane Wang <wangkane@qq.com>
|
||||
* @Date: 2025-08-08 17:23:44
|
||||
* @LastEditors: Kane Wang
|
||||
* @LastModified: 2025-08-08 17:25:07
|
||||
* @FilePath: src/main/java/com/cpic/xim/east/utils/DataFileSpliter.java
|
||||
* @Description:
|
||||
*
|
||||
* Copyright (c) 2025 by Kane All rights reserved
|
||||
*/
|
||||
package com.cpic.xim.east.utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author Kane
|
||||
* @description 用于拆分大文件。
|
||||
*/
|
||||
public class DataFileSpliter
|
||||
{
|
||||
|
||||
public static void splitFile( File inputFile, int lineCountPerFile , String titleString )
|
||||
{
|
||||
try (
|
||||
BufferedReader reader = new BufferedReader( new FileReader( inputFile ) )
|
||||
)
|
||||
{
|
||||
String line;
|
||||
int lineCount = 0;
|
||||
int fileCount = 1;
|
||||
|
||||
BufferedWriter writer = createWriterForFile( inputFile, fileCount );
|
||||
|
||||
while ( (line = reader.readLine()) != null )
|
||||
{
|
||||
if ( lineCount >= lineCountPerFile )
|
||||
{
|
||||
writer.close();
|
||||
|
||||
fileCount++;
|
||||
lineCount = 0;
|
||||
|
||||
writer = createWriterForFile( inputFile, fileCount );
|
||||
}
|
||||
|
||||
// 如果是第一行,则写入标题
|
||||
if ( lineCount == 0 && !titleString.isEmpty() )
|
||||
{
|
||||
writer.write( titleString );
|
||||
writer.newLine();
|
||||
}
|
||||
|
||||
writer.write( line );
|
||||
writer.newLine();
|
||||
lineCount++;
|
||||
}
|
||||
writer.close();
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static BufferedWriter createWriterForFile( File inputFile, int fileCount )
|
||||
{
|
||||
try
|
||||
{
|
||||
String outputFileName = String.format( "%s_part%d.txt", inputFile.getName(), fileCount );
|
||||
FileWriter fileWriter = new FileWriter( new File( inputFile.getParent(), outputFileName ) );
|
||||
|
||||
return new BufferedWriter( fileWriter );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user