⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newsixtable.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
字号:
package net.aetherial.gis.baobu.TotalExcel;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import net.aetherial.gis.jiaotongbu.outputJTB.txtOutput.work.MergeFiles;
import net.aetherial.gis.output.FileOperate;
import net.aetherial.gis.surface.ItemValue;

public class NewSixTable {
	/**
	 * @param args
	 */
	private  String oldFilePath = "E:\\temp\\first";        //上一次报部数据路径
	private  String  newFilePath = "E:\\temp\\current";    //本次数据路径
	//private  String oldFilePath = "d:\\test";        //上一次报部数据路径
	//private  String  newFilePath = "d:\\testbak";    //本次数据路径
	
	
	
    /*
     * 构造函数
     */
	public NewSixTable(){
		super();
	}

	//比较11个文件,去除上次报部与本次相同的记录
	public void createTxtFile(String fileName){
		
		String filePath = "E:\\比较数据";    //接口文件路径
		//String filePath = "E:\\temp";
        File allFile = new File(filePath);
        File[] files = allFile.listFiles();// 获取城市目录列表
		    for (int k = 0; files != null && k < files.length ; k++){
		    	filePath = files[k].getPath();
		  		String tempPath = filePath.replace('\\', ',');
				String[] paths = tempPath.split(",");
				int lenInt = paths.length - 1;
				String shiName = paths[lenInt]; // 城市名
	 
        this.oldFilePath = filePath + "\\first\\";    //上次报部接口文件路径
		this.newFilePath = filePath + "\\current\\";  //本次报部接口文件路径
		
		
      CommClass cc = new CommClass();
	  List oldList = cc.getAllTxt(this.oldFilePath + fileName + ".txt");  //打开上次报部接口文件
	  List newList = cc.getAllTxt(this.newFilePath + fileName + ".txt");     //打开本次报部接口文件
	  String oldLineStr = "";
      String newLineStr = "";
      String [] oldchildStr = null; 
      String [] newChildStr = null; 
      String txtStr = "";
      int n = 0;
	  for (int i=0; newList != null && i<newList.size(); i++){
		  newLineStr = (String)newList.get(i);
		  newChildStr = newLineStr.split("\t");
		  n = 0;
		  for (int j=0; oldList != null && j<oldList.size(); j++){
			  oldLineStr = (String)oldList.get(j);
			  oldchildStr = oldLineStr.split("\t");
			
			  //桥梁
			  if ( fileName.equals("Ql") ){
				  if (oldchildStr[0].trim().equals(newChildStr[0].trim()) && oldchildStr[2].trim().equals(newChildStr[2].trim()))
						    break;
					 if (((oldchildStr[0].trim().equals(newChildStr[0].trim()) && !oldchildStr[2].trim().equals(newChildStr[2].trim()))
							 || (!oldchildStr[0].trim().equals(newChildStr[0].trim()) && oldchildStr[2].trim().equals(newChildStr[2].trim())))
						    && oldchildStr[1].trim().substring(0,10).equals(newChildStr[1].trim().substring(0,10)) ){
						 n ++ ;
						 break;
					 }
				 }
			  //渡口
			  if ( fileName.equals("Dk")  ){
				  if (oldchildStr[0].trim().equals(newChildStr[0].trim()) && oldchildStr[1].trim().equals(newChildStr[1].trim()))
					    break;
			
				 if (((oldchildStr[0].trim().equals(newChildStr[0].trim()) && !oldchildStr[1].trim().equals(newChildStr[1].trim()))
					  || (!oldchildStr[0].trim().equals(newChildStr[0].trim()) && oldchildStr[1].trim().equals(newChildStr[1].trim()))) 
					  && oldchildStr[3].trim().substring(0,10).equals(newChildStr[3].trim().substring(0,10)) ){
					 n ++ ;
					 break;
				 }
			 }
			  //路线
			  if ( fileName.equals("Lx")  ){
					if ( oldchildStr[0].trim().equals(newChildStr[0].trim())) {
						 n++;
						 break;
					}
				}
			
		    //路段
		    if ( fileName.equals("Ld")  ){
				if ( oldchildStr[1].trim().equals(newChildStr[1].trim()) ){
					 n++;
					 break;
				}
		  	}
	
		    //乡镇、建制村
		    if ( fileName.equals("Jzcjbqk") || fileName.equals("Xzjbqk") ){
		    	if (oldchildStr[1].trim().equals(newChildStr[1].trim()) && oldchildStr[0].trim().equals(newChildStr[0].trim()))
					break;
		    	
			if ((!oldchildStr[1].trim().equals(newChildStr[1].trim()) && oldchildStr[0].trim().equals(newChildStr[0].trim())) 
					|| (oldchildStr[1].trim().equals(newChildStr[1].trim()) && !oldchildStr[0].trim().equals(newChildStr[0].trim()))
					&& oldchildStr[0].trim().equals(newChildStr[0].trim())){
		     	n++ ;
				break;
			}
		  	}
		    
			  //乡镇、建制村通达情况
			  if ( fileName.equals("Jzctdqk") || fileName.equals("Xztdqk") ){
				  if (oldchildStr[1].trim().equals(newChildStr[1].trim()) && oldchildStr[0].trim().equals(newChildStr[0].trim()))
						break;
				  if (!(oldchildStr[0].trim().equals(newChildStr[0].trim()) && 
						  oldchildStr[1].trim().equals(newChildStr[1].trim())) ){
					  n++;
					  break;
				  }
				 }
			  //未标注的建制村、未找到的建制村只需一种判断
			  if ( fileName.equals("未标注的建制村") || fileName.equals("未找到的建制村")  ){
				  if (oldLineStr.equals(newLineStr)){
					  n ++;
					  break;
				  }
			 }
	  }
		   //本次报部接口与上次报部接口不相等时,进行汇总
		   if (n != 0) {  
		     txtStr += newLineStr + "\r\n";	  
		     System.out.println(newLineStr);
		   }
		}
		   FileOperate fileOperate = new FileOperate();
		   fileOperate.newFile("e:\\比较后文件\\"+shiName + "\\"+ fileName + ".txt",txtStr);//输出文件
		   System.err.println("****************** "+ shiName + " 比较完成! ***********************");
	}
		    
	}

//	比较11个文件,去除上次报部与本次相同的记录
	public void createTxtFile2(String fileName){
		
		String filePath = "E:\\比较数据";    //接口文件路径
		//String hbfilePath = "e:\\合并的数据";
	   String  filePath2 = "E:\\报部JIO比较后数据";
        File allFile = new File(filePath);
        File[] files = allFile.listFiles();// 获取城市目录列表
		    for (int k = 0; files != null && k < files.length ; k++){
		    	filePath = files[k].getPath();
		  		String tempPath = filePath.replace('\\', ',');
				String[] paths = tempPath.split(",");
				int lenInt = paths.length - 1;
				String shiName = paths[lenInt]; // 城市名
	 
        this.oldFilePath = filePath + "\\current\\";    //上次报部接口文件路径
		this.newFilePath = filePath2 + "\\" + shiName+ "\\";  //本次报部接口文件路径
		
      String tempName = "";
      if (fileName.equals("Jzcjbqk") || fileName.equals("Xzjbqk")  )
          tempName = "新增乡镇建制村一览表.txt";
      if (fileName.equals("Ld") || fileName.equals("Lx"))
    	  tempName = "新增路线一览表.txt";
      CommClass cc = new CommClass();
	  List oldList = cc.getAllTxt(this.oldFilePath + fileName + ".txt");  //打开上次报部接口文件
	  List newList = cc.getAllTxt(this.newFilePath + tempName);     //打开本次报部接口文件
	  String oldLineStr = "";
      String newLineStr = "";
      String [] oldchildStr = null; 
      String [] newChildStr = null;
      String tempStr = "";
      String txtStr = "";
      int n = 0;
      if (fileName.equals("Ld")){
  	  for (int i=0; oldList != null && i<oldList.size(); i++){
		  newLineStr = (String)oldList.get(i);
		  newChildStr = newLineStr.split("\t");
		  n = 0;
		  for (int j=0; newList != null && j<newList.size(); j++){
			  oldLineStr = (String)newList.get(j);
			  oldchildStr = oldLineStr.split("\t");
		   	 if (oldchildStr[1].trim().equals(newChildStr[1].trim()) ){
				  txtStr += newLineStr + "\r\n";
				   System.out.println(newLineStr);
				  break;
		    }
		  }
		   
	  }	  
	 }else {
	  for (int i=0; newList != null && i<newList.size(); i++){
		  newLineStr = (String)newList.get(i);
		  newChildStr = newLineStr.split("\t");
		  n = 0;
		  for (int j=0; oldList != null && j<oldList.size(); j++){
			  oldLineStr = (String)oldList.get(j);
			  oldchildStr = oldLineStr.split("\t");
			   
			  //桥梁、渡口、路线、乡镇、建制村基本情况、隧道只需一种判断
			    if (fileName.equals("Ld")){
			    	 if (oldchildStr[1].trim().equals(newChildStr[1].trim()) ){
						  txtStr += oldLineStr + "\r\n";
						  System.out.println(oldLineStr);
						 break;
					 }
			    }else if (oldchildStr[0].trim().equals(newChildStr[1].trim()) ){
					  txtStr += oldLineStr + "\r\n";
					  System.out.println(oldLineStr);
					 break;
				 }
		  }
		}
	 }
	      
	    
		   FileOperate fileOperate = new FileOperate();
		   fileOperate.newFile("e:\\比较后文件\\"+shiName + "\\"+ fileName + ".txt",txtStr);//输出文件
		   System.err.println("****************** "+ shiName + " 比较完成! ***********************");
	}
		    
	}

	
	
	//------全省汇总-----------------
	public void huiZhong(){
		String [] fileNames = new String[11]; 
		          fileNames[0] = "Dk";
		          fileNames[1] = "Ql";
		          fileNames[2] = "Sd";
		          fileNames[3] = "Jzctdqk";
		          fileNames[4] = "Xztdqk";
		          fileNames[5] = "未标注的建制村";
		          fileNames[6] = "未找到的建制村";
		          fileNames[7] = "Lx";
		          fileNames[8] = "Ld";
		          fileNames[9] = "Jzcjbqk";
		          fileNames[10] = "Xzjbqk";
		          
	  for (int i = 0; i < fileNames.length ; i++){
	     
		       createTxtFile( fileNames[i]);
	    
	         //createTxtFile2( fileNames[i]);
		  System.out.println("*************** " + fileNames[i] + "比较结束! *********************");
		  
	  }
	  
	  MergeFiles mergefiles = new MergeFiles();//将全省的11个文件,合并。
	    try {
	      mergefiles.merge("E:\\比较后文件", "E:\\部接口文件汇总");
	    }
	    catch (Exception ex) {
	      ex.printStackTrace();
	    }
	       
	}
	

	
      public static void main(String[] args) throws IOException {
    	  NewSixTable dvt = new NewSixTable();
		  dvt.huiZhong();  //分设汇总11个接口文件(去除上次与本次报部都有的记录)
		   
  	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -