用Java读取Properties文件内容是我们通常使用 new FileInputStream(filePathName).load(props),这之后就直接对props作getProperty就可以取出属性,保存时props.store(out, header)就可以,很简单。但不能不提出的是,这样的操作,
1. 如果值是汉字,getProperty后必须在外面转码,否则是一串的?;
2. 根本不支持中文key
3. 如果将存在中文(不管是value还是value)的properties保存进去,都变成了字节码!
ResourceBundle表面上提供了Locale的操作,但感觉作用仅仅是通过locale找文件名,本身并没有作字符串的转码(不过也有一个不太令人注意的好处:我发现里面loadBundle方法提供我们访问jar文件的代码:) ),其它操作与Properties没有任何不同。
但昨天本人发现FileInputStream的read、write操作本身是支持中英文,这样一来,就不明白它为何在上述两个类操作时给留下这么大的缺憾了!
为此,我们在读写文件是,自己从stream中取出"="两边的东西在封装成properties为好,写入时将name和value以"="连接一下就好,这个操作也非常简单。操作代码咱放在家里,以后开帖再Paste近来。