关于国际化的问题在网上的很多文章,这里是昨天在处理时遇到的一个问题,需要一个内容类似这样的配置文件
派发=待审批:
转派= 代办:
这样一对一的配置自然想到了利用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读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径...
在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...
根据给定的文件信息,我们可以总结出一系列关于Java中读取文件的方法,这些方法涵盖了不同层次的数据读取,包括字节、字符以及行级别的读取。以下是对这些知识点的详细阐述: ### Java读取文件方法大全:读取File流...
这是一个用于连接SQLite数据库的Java库,允许Java程序通过JDBC接口与SQLite交互。你可以通过Maven或Gradle将依赖添加到项目中,如在Maven的pom.xml文件中添加以下依赖: ```xml <groupId>org.xerial ...
通过以上步骤,我们可以构建一个简单的Java程序,实现从数据库读取表数据并转换为SQL文件的功能。不过,实际项目中可能需要考虑更多因素,如性能优化、事务处理、错误重试等。请确保在操作数据库时遵守最佳实践,以...
`netcdfAll`库提供了方便的API,使得开发者能够轻松地在Java程序中读取和操作GRIB2文件。 两个提供的jar包——`netcdfAll-4.3.jar`和`netcdfAll-4.6.jar`,分别对应于JDK6和JDK7的兼容版本。这意味着如果你的项目...
在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...
在提供的压缩包中,有一个名为"ucanaccess-2.0.9.2.jar"的文件,这是UCanAccess驱动,它是一个开源的Java库,允许Java应用程序直接操作.MDB和.ACCDB格式的Access数据库,而无需安装任何Microsoft软件。要使用这个...
Ini文件是一种配置文件格式,常用于Windows系统中存储应用程序的设置和配置信息。在Java中,没有内置的库来直接处理Ini文件,但我们可以利用Java的I/O流和字符串处理功能来实现读取Ini文件的功能。下面将详细介绍...
- 在运行Java程序时,JVM会查找类路径(Classpath)中定义的路径来加载类和其他资源。`src`目录下的文件在构建后会被包含到Classpath中。 3. **使用Java I/O流读取文件**: - Java提供了一系列的I/O流类来处理...
在Java编程语言中,读取图片内容是一项常见的任务,尤其在开发图形用户界面(GUI)应用、处理图像数据或进行图像分析时。本教程将详细解释如何使用Java来读取和处理图片。以下是一些核心知识点: 1. **Java Image I...
### Java读取资源文件时内容过长与换行的处理 在Java开发过程中,经常会遇到需要读取资源文件的情况,比如配置文件、属性文件等。这些文件中的内容有时会非常长,或者为了提高可读性,需要进行换行处理。本文将详细...
配置文件通常用于存储应用程序的设置,如数据库连接信息、服务器端口、第三方服务的API密钥等,这些信息可能需要根据不同的环境或需求进行更改。在Java中,我们可以使用多种方法来读取配置文件,下面将详细介绍几种...
在Java编程中,Properties文件是一种常用的配置文件格式,用于存储应用程序的配置参数或者环境设置。这些文件通常以键值对的形式存在,例如...理解并熟练运用Properties文件的读取,能让你的Java程序更加灵活和可配置。
总结来说,这个Java程序展示了如何使用Snake YAML库读取和解析YAML配置文件。通过创建`Yaml`对象,加载文件内容,然后将内容转换为`Map`,我们可以方便地获取和操作YAML文件中的任意配置项。这在处理动态配置、...
在Java编程中,读取资源文件是一项常见的任务,特别是在开发应用程序时,我们可能需要加载配置文件、图片、音频或视频等资源。在这个场景下,我们将深入探讨如何在IntelliJ IDEA(Idea)环境中读取资源文件,特别是...
在Java编程环境中,读取DLT645协议文件通常涉及...通过以上步骤,你可以构建一个Java应用程序,读取并解析DLT645协议文件,实现与智能电表的有效通信。记得在实际项目中,还要考虑到性能优化、安全性和可维护性等因素。
在Java编程中,读取配置文件是常见的任务,特别是在构建可扩展和可维护的应用程序时。配置文件通常用于存储应用程序的动态设置,如数据库连接字符串、API密钥、服务器地址等,这些信息需要在运行时根据环境进行调整...
在IT领域,特别是Java编程中,读取PDF文件的元数据是一项常见的需求,尤其是在文档管理、内容管理系统或任何需要处理大量文档的应用场景中。本文将深入探讨如何使用Java读取PDF文件的属性,如作者、标题等元数据,...