我在从属性文件中获取本地化值(UTF-8字符串)时遇到问题。
这就是我做的..
//properties file containing
//name=हिन्दी
public static void main(String[] args)
{
File f = new File("path\\to\\properties\\file");
Properties p = new Properties();
try
{
p.load(new InputStreamReader(new FileInputStream(f),Charset.forName("UTF-8")));
}
catch(IOException iox) {}
System.out.println(p.getProperty("name")); //outputs null
System.out.println(p.toString()); //outputs { name= हिन्दी }
}
由于
答案 0 :(得分:2)
如果最后一行实际输出name= हिन्दी
,那么看起来属性文件中的键字符串有问题;也许包括一些看不见的空白字符或者“名字”的一个字符不是常规的拉丁字母,而是看起来像它的东西。在十六进制编辑器中查看属性文件。
答案 1 :(得分:0)
你的问题在这里:
catch(IOException iox) {}
e.printStackTrace()
并将打印属性值的代码移动到try/catch
块中。查看异常并修复错误。我相信您的文件路径是错误的,因此您将获得FileNotFoundException
或者您可能没有此文件的访问权限。