`
e3002
  • 浏览: 77751 次
社区版块
存档分类
最新评论

java应用程序读取中文资源文件

阅读更多

关于国际化的问题在网上的很多文章,这里是昨天在处理时遇到的一个问题,需要一个内容类似这样的配置文件

 派发=待审批:

转派= 代办: 

这样一对一的配置自然想到了利用properties文件来处理,于是开始动手

package cn.com.ultrapower.common;

import java.io.IOException;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;

import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
public class ProcessActionInfo {

 private static Logger logger = LogManager.getLogger(ProcessActionInfo.class);
 static ResourceBundle bundle;
 private static Properties props = new Properties();
 static{
  /*try {
   props.load(ProcessActionInfo.class.getResourceAsStream("action.properties"));
  } catch (IOException e) {
   e.printStackTrace();
  }*
 }
 
 /**
  * @param key
  * @return
  */
 public static String getValue(String key){
   String strvalue = "";
   Locale localeCN = new Locale("zh","EN");

      bundle = ResourceBundle.getBundle("cn/com/ultrapower/common/action1",Locale.CHINA);
      strvalue = bundle.getString(key);
   try
   {
   Properties props = new Properties();
   props.load(ProcessActionInfo.class.getResourceAsStream("action.properties"));
   strvalue = props.getProperty(key,"待处理");
   } catch (IOException e)
   {
   logger.info("ProcessActionInfo getValue:读取配置文件时发生异常"+e.getCause());
   e.printStackTrace();
   return null;
   }
   return strvalue;
  
  }
 
 public static void main(String[] args){
  System.out.println( ProcessActionInfo.getValue("派发"));
 }
}

 

代码如上,根本不能读取中文,抱错啦!ProcessActionInfo.class.getResourceAsStream("action.properties")是以iso8859-1编码读取的配置文件的,我们需要转码

在jdk/bin目录下执行命令:
native2ascii c:\action.properties  c:\actiondeal.properties
会生成actiondeal.properties文件,然后可以将actiondeal.properties文件内容拷贝到action.properties中或者直接将actiondeal.properties改为actiondeal.properties以覆盖原文件
注:(action.properties文件可以位于任意目录下 )

搞定了通过Properties读取配置文件的中文问题!

java还有另一中国际化的类可以处理,但转码是必须的阿!

package cn.com.ultrapower.common;

import java.io.IOException;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;

import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
public class ProcessActionInfo {

 private static Logger logger = LogManager.getLogger(ProcessActionInfo.class);
 static ResourceBundle bundle;
  }
 
 /**
  * @param key
  * @return
  */
 public static String getValue(String key){
   String strvalue = "";
  // Locale localeCN = new Locale("zh","EN");
      //bundle = ResourceBundle.getBundle("cn/com/ultrapower/common/action1",localeCN);
     // bundle = ResourceBundle.getBundle("cn/com/ultrapower/common/action1",Locale.CHINA);
  // bundle = ResourceBundle.getBundle("cn/com/ultrapower/common/action1",Locale.SIMPLIFIED_CHINESE);
   bundle = ResourceBundle.getBundle("cn/com/ultrapower/common/action1",Locale.getDefault());

//以上几种bundle的获取方式是一样的,java会先寻找名字为action1_zh_CN.properties,如果不存在则在找action1_zh.properties,如果不存在继续找action1.properties,所以如果你的程序需要国际化,你就需要添加多个配置文件
      strvalue = bundle.getString(key);
     return strvalue;
  
  }
 
 public static void main(String[] args){
  System.out.println( ProcessActionInfo.getValue("派发"));
 }
}

 

分享到:
评论

相关推荐

    Java 反射读取配置文件及反射类

    这个工程是使用 java 来使用反射的原理读取 *.proproies 资源文件中的一些配置信息。利用此方法可以在没有使用框架的情况下可以让你的程序更加灵活易于修改。如:可以将一些数据库配置信息,重要信息写入到资源文件...

    Java读取资源文件工具类--ReadConfigation(java源码)

    // 检查属性文件是否被其他程序 // 如果是,重新读取此文件 if(newTime == 0) { // 属性文件不存在 if(m_lastModifiedTime == 0){ System.err.println(PFILE+ " file does not exist!"); }else{ ...

    解决java打包之后无法加载静态资源的问题SWTResourceManager.java源码

    利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为使用java打包之后,生成的jar包中图片找不着的。这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成...

    java版everything+纯java不用任何包读取office中word文件

    原创资源物超所值.不使用任何jar包读取docx文件.Everything的java版本未完成但程序框架已经写出来了其中还包括java读取压缩文件解包压缩文件等各种文件操作类

    读取目录下的文件内容

    该资源是用于读取目录下的文件内容的程序代码,编程语言为c#,改程序简单易用,可执行性好。

    java把文本文件内容导入到数据库

    在生产企业中,会涉及到许多诸如把外部文件内容导入到数据库。本资源采用java程序开发,文本文件内容里的字段用“,”分开(如果是其他标识符,相应修改一下就行了),方便快捷。

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA语言程序设计【高清版】.pdf

    第1章 Java语言 1 1.1 Java语言简介 1 1.1.1 Java语言的问世 1 1.1.2 Java语言的组成 1 1.2 开发环境的安装 3 1.3 一个简单的Java应用程序 4 1.3.1 Java应用程序示例 4 1.3.2 使用Java核心API文档 7...

    java源码包---java 源码 大量 实例

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA_API1.6文档(中文)

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...

    java源码包4

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    java源码包3

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    Java 使用javaCV、ffmpeg拉流H265 RTSP转推H264 RTMP可获取流访问人数(源代码)

    1、本项目为IDEA 2021工具创建的Spring ...5、ffmpeg需要下载linux版本程序,并将路径添加至系统环境,像配置java环境一样。 6、本程序仅供学习交流,请勿用于任何商业场景,由于使用本程序造成的任何损失需自行承担。

    Java加载资源文件的两种方法

    处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都...  在了解了Java加载资源文件的机制后,以上这两个问题便迎刃而解了。  对于第一个问题,答案是:请将你的资源文件放在c

    Java 1.6 API 中文 New

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示...

    安卓读取Excel文件获取表格数据.zip安卓程序项目源码资源下载

    安卓读取Excel文件获取表格数据.zip安卓程序项目源码资源下载安卓读取Excel文件获取表格数据.zip安卓程序项目源码资源下载 1.适合学生做毕业设计用 2.适合程序员学习研究用 3.适合小公司换皮做新项目用

    Java 编译 运行 一键 批处理

    [r] 运行一个已存在的Java程序 [c] 只编译但是不自动运行Java程序 [a] 如果发生编译或运行错误则自动打开记事本以方便修改 请注意,参数[a]必须放在参数列表的最后 更多请见 http://blog.csdn.net/nista

Global site tag (gtag.js) - Google Analytics