Java中读取属性文件以及做资源国际化

在src下的文件,没写包名

 

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

public class Demo {

 /**
  * ResourceBundle类的主要是读取属性文件,读取属性文件名称的时候可以
  * 直接指定属性文件的名称(指定名称是不需要文件的后缀),也可以根据Local
  * 所指定的区域码来选取指定的资源文件。
  *
  * 国际化实现的支持类
  * 要想实现国际化首先就要认识Local类,因此此类事实现国际化的一个重要类
  * public Locale(String language) 构造  根据语言代码构造一个语言环境
  * public Locale(String language,String country) 根据语言和国家构造一个语言环境。
  *
  * 国际化实现的支持类
  * 如果要想实现Java程序的国际化操作必须通过以下的三个类完成:
  * java.util.Local:用于表示一个国家语言类
  * java.util.ResourceBundle:用于访问资源文件
  * java.text.MessageFormat:格式话资源文件的占位符串
  *
  * 如果属性文件在包:cn.edu.hactcm.base.下,则要写成:
  * ResourceBundle zhrb = ResourceBundle.getBundle("cn.edu.hactcm.base.Message", zhLoc);
  */
 public static void main(String[] args) {
  Locale zhLoc = new Locale("zh","CN");  //表示中国地区
  Locale enLoc = new Locale("en","US");  //表示美国地区
  Locale frLoc = new Locale("fr","FR");  //表示法国地区
  //找到中文中的属性文件
  ResourceBundle zhrb = ResourceBundle.getBundle("Message", zhLoc);
  ResourceBundle enrb = ResourceBundle.getBundle("Message", enLoc);
  ResourceBundle frrb = ResourceBundle.getBundle("Message", frLoc);
  
  //一次读取各个属性文件的内容,通过健值读取,此时的健值名称为"info"
  System.out.println("中文:" + zhrb.getString("info"));
  System.out.println("英文:" + enrb.getString("info"));
  System.out.println("法文:" + frrb.getString("info"));
  
  System.out.println();
  
  //依次读取各个属性文件的内容,通过健值读取,此时的健值名称为"info"
  String str1 = zhrb.getString("info");
  String str2 = enrb.getString("info");
  String str3 = frrb.getString("info");
  System.out.println("中文:" + MessageFormat.format(str1, "李兴华"));
  System.out.println("英文:" + MessageFormat.format(str2, "lixinghua"));
  System.out.println("法文:" + MessageFormat.format(str3, "LiXingHua"));
 }
}

 

在src下

Message_en_US.properties中的内容

info=Hello!

 

Message_fr_FR.properties中的内容

info=Bonjour!

 

Message_zh_CN.properties中的内容

info=\u4F60\u597D\!

时间: 2024-09-08 12:37:55

Java中读取属性文件以及做资源国际化的相关文章

java中读取一个文件一中的内容,这个文件的每行都是一个词,在文件二中查找文件一中词出现的次数

问题描述 java中读取一个文件一中的内容,这个文件的每行都是一个词,在文件二中查找文件一中词出现的次数 String lineTxt1 = new String(); String lineTxt2 = new String(); while((lineTxt1 = bufferedReader1.readLine()) != null) { while((lineTxt2 = bufferedReader2.readLine()) != null){ if(lineTxt2.indexOf(

csv-java中读取CSV文件时怎么处理数据当中的逗号?

问题描述 java中读取CSV文件时怎么处理数据当中的逗号? 现在要读取一个CSV文件,将内容读取后用excel的格式输出, 读取的时候使用StringTokenizer类,用逗号将CSV的数据用逗号一个个分割, csv的格式是这样的(值与值之间用半角逗号分隔): "aaa","bbb","ccc","ddd","eee"; 像这样的情况是没有问题的: 但是当数据中也有半角逗号时,例如: "aaa

Java项目中读取properties文件的具体步骤

下面1-4的内容是网上收集的相关知识,总结来说,就是如下几个知识点: 1.最常用读取properties文件的方法InputStream in = getClass().getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面.如果在不同的包中,必须使用: InputStream ins =this.getClass().getResourceAsStream("/cn/zhao/properties/testP

根据不同的操作系统读取配置文件/java读取属性文件代码

package cn.com.css.common.util; /** * @brief OSEnum.java 操作系统的枚举 * @attention * @author 涂作权 * @date 2014年4月3日 * @note begin modify by null */public enum EOSPlatForm { Any("any"), Linux("Linux"), Mac_OS("Mac OS"), Mac_OS_X(&qu

java-C#中将double值变成二进制然后写入文件,Java中载入该文件读取此二进制double值时不正确

问题描述 C#中将double值变成二进制然后写入文件,Java中载入该文件读取此二进制double值时不正确 目前已定位到是因为C#中的byte范围是0到255,而java中byte值为-128到127导致的错误. 尝试过使用C#的sbyte来解决: bw1 = new BinaryWriter(new FileStream("C:UsersDELLDesktopSpatialIndexctest1.bin", FileMode.Create)); bw2 = new BinaryW

如何用Java编写读取txt文件中数据并播放出来的软件,该怎么弄???

问题描述 如何用Java编写读取txt文件中数据并播放出来的软件,该怎么弄?? 解决方案 解决方案二:播放出来?不懂解决方案三:javax.sound.midi结合java.io自己找文档看看

java获取properties属性文件示例_java

一个属性列表可包含另一个属性列表作为它的"默认值":如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表. 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法.但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项.相反,应该使用 setProperty 方法.如果在"不安全"的 Properties 对象(即包含非 String 的键或值)上调用 stor

java中struts2实现文件上传下载功能实例解析_java

本文实例讲述了java中struts2实现文件上传下载功能实现方法.分享给大家供大家参考.具体分析如下: 1.文件上传 首先是jsp页面的代码 在jsp页面中定义一个上传标签   复制代码 代码如下: <tr>      <td align="right" bgcolor="#F5F8F9"><b>附件:</b></td>      <td bgcolor="#FFFFFF">

java遍历读取xml文件内容_java

本文实例讲解了java遍历读取xml文件内容的详细代码,分享给大家供大家参考,具体内容如下 package test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Iterator; imp