Tool to find duplicate keys and value in properties file

匿名 (未验证) 提交于 2019-12-03 03:08:02

问题:

is there a tool that tells me redundant keys and values that are there in my one or many properties file.

回答1:

There is an Ant task, RscBundleCheck, that checks for the existence of duplicate keys in a set of resource files:

http://rscbundlecheck.sourceforge.net/

This would be simple way to integrate checking for duplicate properties into your build process.



回答2:

/**  *  Purpose:  Properties doesn't detect duplicate keys.  So this exists.  *  @author shaned  */ package com.naehas.tests.configs;  import java.util.Properties;  import org.apache.log4j.Logger;  public class NaehasProperties extends Properties {    private static final long   serialVersionUID = 1L;     private static final Logger log              = Logger.getLogger(NaehasProperties.class);     public NaehasProperties()    {       super();    }     /**     * @param defaults     */    public NaehasProperties(Properties defaults)    {       super(defaults);    }     /**     * Overriding the HastTable put() so we can check for duplicates     *      */    public synchronized Object put(Object key, Object value)    {       // Have we seen this key before?       //       if (get(key) != null)       {          StringBuffer message = new StringBuffer("Duplicate key found: " + key + " with value: " + value);          message.append(". Original value is: " + (String) get(key));           log.error(message.toString());           // Setting key to null will generate an exception and cause an exit.          // Can not change the signature by adding a throws as it's not compatible          // with HashTables put().          //          // If you commented out this line, you will see all the occurrences of the duplicate key          // as the put will overwrite the past encounter.          //          key = null;       }        return super.put(key, value);    } } 


回答3:

I don't know if there is an existing tool, but you should be able to write a short java program, or script in a language you are comfortable with that should do this in no time. Then you would also have it for future use.

A quick google search yielded the following http://www.javanb.com/netbeans/1/19793.html

this has a gui tool and a script that will do it.



回答4:

On Netbeans there is a sort line tools plugin, which has the option to remove duplicates. Works perfectly if properties are one lined.

What is more, sorting the properties makes this file more readible.



回答5:

It might be easiest just to write one: For each file, and for each property in that file, put the property key/value pair into a Map, but only after ensuring that the key is not already in the Map. If it is, print out the file name, the key, and the two values.



回答6:

If you are using an IDE you might find a good tool among their plugins/features.

Eclipse has a ResourceBundle Editor plugin which manages properties files:

http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-331.html

IntelliJ IDEA 8 and higher is also able to manage properties files and check for duplicate entries.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!