代码很简单,如下:
package com.learning;import java.util.Locale;
import java.util.ResourceBundle;public class TestResource { public static void main(String[] args) {
ResourceBundle rb = ResourceBundle.getBundle("com.learning.test",
Locale.US);
System.out.println(rb.getLocale());
System.out.println(rb.getString("title1"));
}}为什么我都把Locale写死了US却还是输出中文,在包里面有test.properties(存的英文)和test_zh_CN.properties(存的中文)
谁能帮我解答一下,谢谢

解决方案 »

  1.   

    你有一个资源文件叫
    myresource_en.properties
    吗?
      

  2.   

    System.out.println(rb.getLocale());
    这句话一直输出zh_CN,不明白为什么
    貌似和test_en.properties没关系啊
      

  3.   

    我把test.properties文件名改为test_en_US.properties后代码就能运行成功了
    可是我记得一般都把英文的资源写在一个总的文件里,就像上面的test.properties而不会去可以声明_en_US
    会不会是因为在读取不了Locale的情况下,缺省的读取不带区域的.properties文件(test.properties)
    这个也只是个人猜测,不知道哪位高人能够指点一下?
      

  4.   

    没有后缀的test.properties就是US的??不是这样的!!
    按照查找顺序,这个是最后默认的资源文件而已。
    你既然指定了_US, 你就需要指定_en的资源文件,否则系统找不到,还是会按照顺序自动寻找的。请看一下API里面的说明吧!http://www.java2000.net/viewthread.jsp?tid=1060