JAVA读取属性文件含中文字符

来源:互联网 发布:软件开发业务流程 编辑:程序博客网 时间:2024/06/11 19:33

package com.demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
public class StudentDemo2 {

private Map<String,Object> objects = new HashMap<>();public static void main(String[] args) throws Exception {    new StudentDemo2().readFile("config.txt");}public static void test2() {    StudentDemo2 sd2 = new StudentDemo2();    try {        Map<String,Object> myobjs = sd2.readFile("config.txt");        Student stu = (Student) myobjs.get("student");        stu.eat();        Date now = (Date) myobjs.get("now");        System.out.println(now);    } catch (Exception e) {        e.printStackTrace();    }}public Map<String,Object> readFile(String fileName) throws Exception{    Properties prop = new Properties();    File file = new File(fileName);    //FileReader reader = new FileReader(file);    FileInputStream fis = new FileInputStream(file);    prop.load(fis);//可以用字符流和字节流    //根据key获取value    String value = prop.getProperty("student");         System.out.println(value);    //循环获取所有的key和value    Set<Entry<Object, Object>> entrys= prop.entrySet();    for(Entry<Object, Object> entry : entrys){        System.out.println(entry.getKey()+"-->"+entry.getValue());        String key=new String( entry.getKey().toString().getBytes("ISO8859-1"),"GBK");        System.out.println(key+"-->"+entry.getValue());        Class<?> clazz = Class.forName(entry.getValue().toString());        Object obj = clazz.newInstance();        objects.put(entry.getKey().toString(),obj);    }    return objects;}

}

0 0