日期:2014-05-20 浏览次数:20830 次
程序启动时,各个参数缺省值从配置文件读取。在配置文件的最后增加一Hash值,该值由配置文件的各个参数计算得到,用于验证完整性,避免随意更改该文件。
public int hashCode() { int h = hash; if (h == 0) { int off = offset; char val[] = value; int len = count; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; }
------解决方案--------------------
把所有参数的名称和值全部串起来合并成一个字符串,然后直接用该字符串的hash值就好了。
------解决方案--------------------
如果配置文件内容是:
student=li
number=2012
那么,字符串是:
String content = "studentlinumber2012";
最后的hash值是:
int hash = content.hashCode();
------解决方案--------------------
为什么一定要hash呢,把所有字符加起来md5一下也可以,位数也只有16位或32位
------解决方案--------------------
hash的存在为了加快检索能力吧。
------解决方案--------------------
楼主只要要避免随意更改配置文件啦... 这个不用hash值.. 你直接算文件的MD5就可以啦..
算出来的MD5保存下来, 下次读文件的时候验证一下, 就可以了.