读文件中重复键值对异常处理?
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用比较特殊的字符连接起来,然后往数组里放的时候现比较,如果和以前的一样就不插入,或者抛出个自定义异常