📄 mergefiles.java
字号:
package net.aetherial.gis.jiaotongbu.outputJTB.txtOutput.work;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
import java.io.*;
import java.util.*;
public class MergeFiles {
private static final String LD_FILE_NAME = "Ld.txt";
private static final String LX_FILE_NAME = "Lx.txt";
private static final String QL_FILE_NAME = "Ql.txt";
private static final String SD_FILE_NAME = "Sd.txt";
private static final String DK_FILE_NAME = "Dk.txt";
private static final String JZCJBQK_FILE_NAME = "Jzcjbqk.txt";
private static final String JZCTDQK_FILE_NAME = "Jzctdqk.txt";
private static final String XZJBQK_FILE_NAME = "Xzjbqk.txt";
private static final String XZTDQK_FILE_NAME = "Xztdqk.txt";
private static final String WBZ_FILE_NAME = "未标注的建制村.txt";
private static final String WZD_FILE_NAME = "未找到的建制村.txt";
private static final String[] FILE_NAMES = new String[] {
LD_FILE_NAME,
LX_FILE_NAME,
QL_FILE_NAME,
SD_FILE_NAME,
DK_FILE_NAME,
JZCJBQK_FILE_NAME,
JZCTDQK_FILE_NAME,
XZJBQK_FILE_NAME,
XZTDQK_FILE_NAME,
WBZ_FILE_NAME,
WZD_FILE_NAME
};
private static final String[] FILE_HEADERS = new String[] {
"路段编码 路线编码 路线名称 路段序列号 所在行政区划 起点名称 起点桩号 起点经度 起点纬度 起点是否为分界点 起点分界点类别 迄点名称 迄点桩号 迄点经度 迄点纬度 迄点是否为分界点 迄点分界点类别 技术等级 路面类型 路段里程 路面宽度 路基宽度 是否重复路段 所重复路段序列号 所重复路线编码 是否晴通雨阻 是否断头路 建成时间 最近改建时间 涵洞数量 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"路线编码 路线名称 起点地名 起点经度 起点纬度 起点是否为分界点 起点分界点类别 起点所在行政区划 迄点地名 迄点经度 迄点纬度 迄点是否为分界点 迄点分界点类别 迄点所在行政区划 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"桥梁编码 所属路段编码 桥梁名称 桥梁编号 建成时间 中心桩号 桥梁经度 桥梁纬度 桥梁长度 设计荷载 按跨径分 按建筑材料和使用年限分 是否危桥 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"隧道编码 所属路段编码 隧道编号 隧道名称 建成时间 起点桩号 隧道经度 隧道纬度 隧道长度 隧道净高 隧道全宽 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"渡口编码 渡口名称 渡口编号 所属路段编码 建成时间 起点桩号 渡口经度 渡口纬度 渡口宽度 是否为机动渡口 渡口类型 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"建制村编码 建制村名称 建制村人口 所辖自然村数量 所属地形 岛屿是否建有陆岛交通码头 码头与陆地距离 岛内是否建有公路 村委会经度 村委会纬度 村小学经度 村小学纬度 是否适宜通公路 不适宜原因 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"建制村编码 通达路线编码 通达路线名称 通达位置 其他位置名称 通达路线是否与建制村内部街道连接 村委会距通达路线的里程 村小学距通达路线的里程 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"乡镇编码 乡镇名称 乡镇人口 所辖建制村数量 所属地形 岛屿是否建有陆岛交通码头 码头与陆地距离 岛内是否建有公路 乡镇政府经度 乡镇政府纬度 是否适宜通公路 不适宜原因 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"乡镇编码 通达路线编码 通达路线名称 通达位置 其他位置名称 通达路线是否与乡镇内部街道连接 乡镇政府距通达路线的里程 备注 填表人 填表人电话 审核人 审核人电话 填报单位 填报单位负责人",
"未标注的建制村",
"未找到的建制村"
};
private static final String OUTPUT_DIR_NAME = "接口文件";
private String inputBaseDir = "H:\\数据备份\\报部数据\\安徽省";
private String outputBaseDir = "H:\\数据备份\\报部数据\\部接口";
private static final String SEP = java.io.File.separator;
public MergeFiles() {
super();
}
public void merge(String inputBase, String outputBase) throws Exception {
for (int i = 0; i < FILE_NAMES.length; i++) {
Vector files = new Vector();
System.out.println("查找所有的:" + FILE_NAMES[i]);
findOutFiles(files, FILE_NAMES[i], inputBase);
System.out.println("合并写入文件:" + outputBase + SEP + FILE_NAMES[i]);
BufferedWriter bo = new BufferedWriter(new FileWriter(new File(outputBase + SEP + FILE_NAMES[i])));
bo.write(FILE_HEADERS[i]);
bo.newLine();
for (int f = 0; f < files.size(); f++) {
BufferedReader br = new BufferedReader(new FileReader( (File) files.get(f)));
if (i < 9) {
br.readLine(); // ignore first line of all files
}
String content = "";
while ( (content = br.readLine()) != null) {
// content = content.replaceAll("\n", "").replaceAll("\r", "");
bo.write(content);
bo.newLine();
}
br.close();
System.out.print(".");
}
System.out.println("结束");
bo.flush();
bo.close();
}
}
private void findOutFiles(Vector store, String name, String dirStr) {
File dir = new File(dirStr);
if (dir.isDirectory()) {
File[] subFiles = dir.listFiles();
for (int i = 0; subFiles != null && i < subFiles.length; i++) {
if (subFiles[i].isFile()) {
if (name.equalsIgnoreCase(subFiles[i].getName())) {
store.add(subFiles[i]);
}
}
else {
findOutFiles(store, name, subFiles[i].getPath());
}
}
}
}
public static void main(String[] args) {
/*if (args.length < 2) {
System.out.println("参数太少,无法运行!有问题找陶刚,哈");
System.exit(0);
}
*/
MergeFiles mergefiles = new MergeFiles();
try {
mergefiles.merge("E:\\汇总", "E:\\全省接口合计数据");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -