关于国际化读取文件内容

原创 2016年06月02日 09:30:07
package com;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.DefaultFileSystem;
import org.apache.commons.configuration.PropertiesConfiguration;


public class test02 {


public static void main(String[] args) throws Exception {


// InputStream in= new test02().getFileByPath("aaa/ht.html",Locale.US);
//  
// byte b[]=new byte[(int)1000];     //创建合适文件大小的数组   
//        in.read(b);    //读取文件中的内容到b[]数组   
//        in.close();   
//        System.out.println(new String(b));   




Map<String,String> map= new test02().getPropertiesAll("D:/database.proPerties", Locale.CHINA);
for (String s: map.keySet()) {
System.out.println(s+"--->"+map.get(s));
}

}


/**
* 除properties意外其他文件返回

* @param filePath
* @return
* @throws ConfigurationException
*/
public InputStream getFileByPath(String filePath,Locale locale) throws ConfigurationException {



String fileSuffix=filePath.substring(filePath.lastIndexOf(".") + 1, filePath.length());
String path = filePath.substring(0,filePath.lastIndexOf(".")) + "_" + locale + "."+fileSuffix;

DefaultFileSystem def = new DefaultFileSystem();
InputStream in = def.getInputStream(fileSuffix,path);
return in;
}


/**
* 获取properties文件属性值
* @param filePath 
*aa/datavase.properties  或者 D:/datavase.properties
*aa/datavase.xml         或者 D:/datavase.xml
* @param locale
* @throws ConfigurationException
*/
public Map<String,String> getPropertiesAll(String filePath, Locale locale) throws ConfigurationException  {
// ReloadableResourceBundleMessageSource r = new ReloadableResourceBundleMessageSource();
// r.setBasename(filePath);
// r.setCacheSeconds(5);


String fileSuffix=filePath.substring(filePath.lastIndexOf(".")+1,filePath.length()).toLowerCase();
String path = filePath.substring(0,filePath.lastIndexOf(".")) + "_" + locale + "."+fileSuffix;
Configuration config;
//if(fileSuffix.equals("properties")){
config = new PropertiesConfiguration(path);
//}else if(fileSuffix.equals("xml")) {
//config = new PropertiesConfiguration(path);
//}else{
//config=null;
//}
Map<String,String> map=new HashMap<String,String>();
Iterator<String> it=config.getKeys();
   while (it.hasNext()) {
  String itnext=it.next();
  map.put(itnext, config.getString(itnext));
   }
return map;


}

}


maven依赖:

    <dependency>  
    <groupId>commons-configuration</groupId>  
    <artifactId>commons-configuration</artifactId>  
    <version>1.9</version>  
</dependency>  
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>


相关文章推荐

VC动态读取access文件内容

  • 2016年04月02日 10:28
  • 32.19MB
  • 下载

读取文件内容

  • 2013年12月02日 10:18
  • 1.78MB
  • 下载

分别用Java和JS读取Properties文件内容

项目中经常用到的配置文件,除了XML文件之外,还会用到Properties文件来存储一些信息,例如国际化的设置、jdbc连接信息的配置等。有时候也会把一些路径或者sql语句放到Properties中,...

读取各种格式的txt文件内容

  • 2014年04月04日 14:30
  • 2.27MB
  • 下载

研究MapReduce源码之实现自定义LineRecordReader完成多行读取文件内容

TextInputFormat是Hadoop默认的数据输入格式,但是它只能一行一行的读记录,如果要读取多行怎么办? 很简单 自己写一个输入格式,然后写一个对应的Recordreader就可以了,但是...

JavaScript读取客户端的文件内容

  • 2009年11月03日 23:55
  • 1.94MB
  • 下载

读取文件内容并以二进制显示

  • 2006年02月23日 09:05
  • 2.18MB
  • 下载

Java读取文件内容的几种方式

package com.readfile; import java.io.BufferedReader; import java.io.File; import java.io.FileInputS...

iOS 读取execl文件内容

  • 2016年08月25日 22:11
  • 194KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于国际化读取文件内容
举报原因:
原因补充:

(最多只允许输入30个字)