java 对比两个属性文件的key
来源:互联网 发布:科比历年数据 编辑:程序博客网 时间:2024/05/18 13:30
package tools.icd.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 小程序:比对中英文properties文件,查找不匹配的key
*/
public class FilePropertiesCompare {
private static Logger logger = LoggerFactory.getLogger(FilePropertiesCompare.class);
private static String searchFileName1="messages.properties";
private static File file;
private static Properties properties;
private static Properties properties_en_us;
private FileInputStream fileInputStream;
private FileInputStream fileInputStream_en_us;
private static String path = "E:\\his_leopard\\leopard\\branches\\dev\\" ;
private static String filePath_zw = "\\i18n\\"+"messages.properties";
private static String filePath_en_us = "\\i18n\\"+"messages_en_US.properties";
public void findFileName(File f,String name) {
file=new File(path);
if(!file.isDirectory()){
logger.info("must be directory");
}
File[] files=file.listFiles();
logger.info("files size:"+files.length);
logger.info("\n");
for(int i=0;i<files.length;i++){
String filePath = files[i].getPath();
String fileName = files[i].getName();
String filePath1 = filePath+"\\src\\" +fileName.replace(".", "\\") + filePath_zw;
String filePath2 = filePath+ "\\src\\" +fileName.replace(".", "\\") + filePath_en_us;
comparePropertiesFileKey(filePath1,filePath2);
}
}
private void comparePropertiesFileKey(String filePath,String filePath_en_us) {
properties = new Properties();
properties_en_us = new Properties();
try {
fileInputStream = new FileInputStream(filePath);
fileInputStream_en_us = new FileInputStream(filePath_en_us);
properties.load(fileInputStream);
properties_en_us.load(fileInputStream_en_us);
Enumeration<?> key = properties.propertyNames();
Enumeration<?> key_en_us = properties_en_us.propertyNames();
List<String> keyList = new ArrayList<String>();
List<String> keyList_en_us = new ArrayList<String>();
while (key.hasMoreElements()) {
String keyName = (String) key.nextElement();
keyList.add(keyName);
}
while (key_en_us.hasMoreElements()) {
String keyName = (String) key_en_us.nextElement();
keyList_en_us.add(keyName);
}
/**比较两个属性文件中的key是否一样多*/
if(keyList.size() != keyList_en_us.size()){
logger.info("====================================================================================================");
logger.info("\n");
logger.info("size::"+keyList.size()+"《=====》size_en_us::"+keyList_en_us.size());
logger.info("\n");
logger.info("filePath_messages:"+filePath);
logger.info("\n");
logger.info("filePath_messages_en_US:"+filePath_en_us);
logger.info("\n");
logger.info("\n");
logger.info("messages_en_US.properties缺少的文件:");
logger.info("\n");
}
for (String name : keyList) {
if(!keyList_en_us.contains(name)){
logger.info(name+" = "+ properties.getProperty(name));
logger.info("\n");
}
}
fileInputStream.close();
fileInputStream_en_us.close();
logger.info("==================================================================================================");
logger.info("\n");
} catch (FileNotFoundException e) {
// logger.info("读取文件====》失败!原因:文件路径错误或文件不存在.");
// e.printStackTrace();
} catch (IOException e) {
// logger.info("装载文件====》失败.");
// e.printStackTrace();
}
}
public static void main(String[] args) {
FilePropertiesCompare rf = new FilePropertiesCompare();
rf.findFileName(file,searchFileName1);
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 小程序:比对中英文properties文件,查找不匹配的key
*/
public class FilePropertiesCompare {
private static Logger logger = LoggerFactory.getLogger(FilePropertiesCompare.class);
private static String searchFileName1="messages.properties";
private static File file;
private static Properties properties;
private static Properties properties_en_us;
private FileInputStream fileInputStream;
private FileInputStream fileInputStream_en_us;
private static String path = "E:\\his_leopard\\leopard\\branches\\dev\\" ;
private static String filePath_zw = "\\i18n\\"+"messages.properties";
private static String filePath_en_us = "\\i18n\\"+"messages_en_US.properties";
public void findFileName(File f,String name) {
file=new File(path);
if(!file.isDirectory()){
logger.info("must be directory");
}
File[] files=file.listFiles();
logger.info("files size:"+files.length);
logger.info("\n");
for(int i=0;i<files.length;i++){
String filePath = files[i].getPath();
String fileName = files[i].getName();
String filePath1 = filePath+"\\src\\" +fileName.replace(".", "\\") + filePath_zw;
String filePath2 = filePath+ "\\src\\" +fileName.replace(".", "\\") + filePath_en_us;
comparePropertiesFileKey(filePath1,filePath2);
}
}
private void comparePropertiesFileKey(String filePath,String filePath_en_us) {
properties = new Properties();
properties_en_us = new Properties();
try {
fileInputStream = new FileInputStream(filePath);
fileInputStream_en_us = new FileInputStream(filePath_en_us);
properties.load(fileInputStream);
properties_en_us.load(fileInputStream_en_us);
Enumeration<?> key = properties.propertyNames();
Enumeration<?> key_en_us = properties_en_us.propertyNames();
List<String> keyList = new ArrayList<String>();
List<String> keyList_en_us = new ArrayList<String>();
while (key.hasMoreElements()) {
String keyName = (String) key.nextElement();
keyList.add(keyName);
}
while (key_en_us.hasMoreElements()) {
String keyName = (String) key_en_us.nextElement();
keyList_en_us.add(keyName);
}
/**比较两个属性文件中的key是否一样多*/
if(keyList.size() != keyList_en_us.size()){
logger.info("====================================================================================================");
logger.info("\n");
logger.info("size::"+keyList.size()+"《=====》size_en_us::"+keyList_en_us.size());
logger.info("\n");
logger.info("filePath_messages:"+filePath);
logger.info("\n");
logger.info("filePath_messages_en_US:"+filePath_en_us);
logger.info("\n");
logger.info("\n");
logger.info("messages_en_US.properties缺少的文件:");
logger.info("\n");
}
for (String name : keyList) {
if(!keyList_en_us.contains(name)){
logger.info(name+" = "+ properties.getProperty(name));
logger.info("\n");
}
}
fileInputStream.close();
fileInputStream_en_us.close();
logger.info("==================================================================================================");
logger.info("\n");
} catch (FileNotFoundException e) {
// logger.info("读取文件====》失败!原因:文件路径错误或文件不存在.");
// e.printStackTrace();
} catch (IOException e) {
// logger.info("装载文件====》失败.");
// e.printStackTrace();
}
}
public static void main(String[] args) {
FilePropertiesCompare rf = new FilePropertiesCompare();
rf.findFileName(file,searchFileName1);
}
}
- java 对比两个属性文件的key
- Java对比两个文件统计字符串相同行的数量
- eclipse里面对比两个java文件
- 对比两个xml文件的标签
- python对比两个文件的方法
- 两个文件对比 C#
- vi对比两个文件
- 两个数据库文件对比
- 由Java属性文件*.properties中getParameter(String key)出现乱码引发的探索
- java对比两个数组
- 两个大数组foreach,找出相同的key数量,所用的时间对比
- 读取src下的属性文件的某个key值
- 两个XML文件进行对比
- Properties的用法及其操作属性文件(遍历Key)
- PropertyPlaceholderConfigurer获取属性文件指定key的value值
- 用Python xlrd对比两个Excel文件的差异diff
- 对比svn两个不同分支目录的文件
- Shell 命令行求两个文件每行对比的相同内容
- viewpager 实现左右滑动
- 动手做rom
- eclipse 启动tomcat问题
- 利用JOOR简单编写java的反射
- Android AIDL
- java 对比两个属性文件的key
- 扎稳打Silverlight(44) - 4.0浏览器外运行(Out Of Browser)之OOB的增强及其新增的NotificationWindow
- asp.net 调用NPOI 输出Excel
- java抽象类和接口的区别,使用场景
- listview listctrl排序
- Activity之间的数据传递-service与activity之间的数据传递
- 在内核树内增加驱动模块
- Linux 3.3.0移植到S3C6410开发板上之一
- 网络ADB调试方法(最简单实用)