日期:2014-05-20  浏览次数:20827 次

在文件中读到的“键--值”对有重复怎么做异常处理?
import   java.io.*;
import   java.util.*;
class   Test
{
    public   static   void   main(String[]   args)
    {
        /*   //获得系统信息
        Properties   pps=System.getProperties()   ;
        pps.list(System.out);
        */
      Properties   pps=new   Properties();       //创建空属性列表
      try
      {
          pps.load(new   FileInputStream( "c:\\unhappyless "));
          Enumeration   enum=pps.propertyNames();
          String   Strkey;
          while(enum.hasMoreElements())
          {
              Strkey=(String)enum.nextElement();
              System.out.println(Strkey+ "= "+pps.getProperty(Strkey));
          }
      }
      catch(Exception   e)
      {
          e.printStackTrace();
      }
    }
}

若读到的“键”有重复,要怎么判断?在异常中判断吗?

c:\unhappyless   文件内容:
unhappyless=1
unhappyless=2
unhappyless
unhappyless=

------解决方案--------------------
用HashMap来过滤,

HashMap p=new HashMap();


while(enum.hasMoreElements())
{
String key=(String)enum.nextElement();
String value=pps.getProperty(Strkey);
//
if(p.containKey(key)==false)
p.put(key,value);
else
{
//后面的定义覆盖前面的
p.put(key,value);
//或者以第一次出现的定义为准
System.out.println(key+ " has been defined ");
}
}
------解决方案--------------------
1把key和value用比较特殊的字符连接起来,然后往数组里放的时候现比较,如果和以前的一样就不插入,或者抛出个自定义异常
楼上的更好