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

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编程语言中,读取文件是一项常见的操作,尤其是在处理数据、日志文件或配置信息时。本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的...

    java 读取资源文件

    在Java编程中,读取资源文件是常见的任务,特别是在配置应用程序、处理文本数据或加载本地化内容时。本文将深入探讨如何使用Java读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径...

    java 按顺序读取文件

    在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...

    java读取文件方法大全

    根据给定的文件信息,我们可以总结出一系列关于Java中读取文件的方法,这些方法涵盖了不同层次的数据读取,包括字节、字符以及行级别的读取。以下是对这些知识点的详细阐述: ### Java读取文件方法大全:读取File流...

    java读取本地.db文件实例

    这是一个用于连接SQLite数据库的Java库,允许Java程序通过JDBC接口与SQLite交互。你可以通过Maven或Gradle将依赖添加到项目中,如在Maven的pom.xml文件中添加以下依赖: ```xml <groupId>org.xerial ...

    java程序读取数据库表 转为sql文件 仅供参考 不得宣传

    通过以上步骤,我们可以构建一个简单的Java程序,实现从数据库读取表数据并转换为SQL文件的功能。不过,实际项目中可能需要考虑更多因素,如性能优化、事务处理、错误重试等。请确保在操作数据库时遵守最佳实践,以...

    java读取grib2文件

    `netcdfAll`库提供了方便的API,使得开发者能够轻松地在Java程序中读取和操作GRIB2文件。 两个提供的jar包——`netcdfAll-4.3.jar`和`netcdfAll-4.6.jar`,分别对应于JDK6和JDK7的兼容版本。这意味着如果你的项目...

    java按行读取大文件并解析入库

    在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...

    java读取*.mdb文件数据

    在提供的压缩包中,有一个名为"ucanaccess-2.0.9.2.jar"的文件,这是UCanAccess驱动,它是一个开源的Java库,允许Java应用程序直接操作.MDB和.ACCDB格式的Access数据库,而无需安装任何Microsoft软件。要使用这个...

    Java读取Ini文件

    Ini文件是一种配置文件格式,常用于Windows系统中存储应用程序的设置和配置信息。在Java中,没有内置的库来直接处理Ini文件,但我们可以利用Java的I/O流和字符串处理功能来实现读取Ini文件的功能。下面将详细介绍...

    java读取项目中的文件(src目录下)

    - 在运行Java程序时,JVM会查找类路径(Classpath)中定义的路径来加载类和其他资源。`src`目录下的文件在构建后会被包含到Classpath中。 3. **使用Java I/O流读取文件**: - Java提供了一系列的I/O流类来处理...

    Java应用程序读取图片内容.zip

    在Java编程语言中,读取图片内容是一项常见的任务,尤其在开发图形用户界面(GUI)应用、处理图像数据或进行图像分析时。本教程将详细解释如何使用Java来读取和处理图片。以下是一些核心知识点: 1. **Java Image I...

    Java读取资源文件时内容过长与换行的处理

    ### Java读取资源文件时内容过长与换行的处理 在Java开发过程中,经常会遇到需要读取资源文件的情况,比如配置文件、属性文件等。这些文件中的内容有时会非常长,或者为了提高可读性,需要进行换行处理。本文将详细...

    java读取配置文件

    配置文件通常用于存储应用程序的设置,如数据库连接信息、服务器端口、第三方服务的API密钥等,这些信息可能需要根据不同的环境或需求进行更改。在Java中,我们可以使用多种方法来读取配置文件,下面将详细介绍几种...

    java 读取properties文件代码

    在Java编程中,Properties文件是一种常用的配置文件格式,用于存储应用程序的配置参数或者环境设置。这些文件通常以键值对的形式存在,例如...理解并熟练运用Properties文件的读取,能让你的Java程序更加灵活和可配置。

    使用java代码获取yml文件中指定的内容(csdn)————程序.pdf

    总结来说,这个Java程序展示了如何使用Snake YAML库读取和解析YAML配置文件。通过创建`Yaml`对象,加载文件内容,然后将内容转换为`Map`,我们可以方便地获取和操作YAML文件中的任意配置项。这在处理动态配置、...

    java读取资源文件

    在Java编程中,读取资源文件是一项常见的任务,特别是在开发应用程序时,我们可能需要加载配置文件、图片、音频或视频等资源。在这个场景下,我们将深入探讨如何在IntelliJ IDEA(Idea)环境中读取资源文件,特别是...

    java读取dlt645所需文件

    在Java编程环境中,读取DLT645协议文件通常涉及...通过以上步骤,你可以构建一个Java应用程序,读取并解析DLT645协议文件,实现与智能电表的有效通信。记得在实际项目中,还要考虑到性能优化、安全性和可维护性等因素。

    java读取配置文件(axun)

    在Java编程中,读取配置文件是常见的任务,特别是在构建可扩展和可维护的应用程序时。配置文件通常用于存储应用程序的动态设置,如数据库连接字符串、API密钥、服务器地址等,这些信息需要在运行时根据环境进行调整...

    java读取pdf文件属性

    在IT领域,特别是Java编程中,读取PDF文件的元数据是一项常见的需求,尤其是在文档管理、内容管理系统或任何需要处理大量文档的应用场景中。本文将深入探讨如何使用Java读取PDF文件的属性,如作者、标题等元数据,...

Global site tag (gtag.js) - Google Analytics