Tool to find duplicate keys and value in properties file

眉间皱痕 提交于 2019-12-06 01:37:32

问题


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.



来源:https://stackoverflow.com/questions/1779196/tool-to-find-duplicate-keys-and-value-in-properties-file

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