飞奔的炮台 发表于 2021-10-20 18:43:12

JSP 中Spring的Resource类读写中文Properties实例代码

JSP 中Spring的Resource类读写中文Properties
摘要: Spring对Properties的读取进行了完善而全面的封装,对于写则仍需配合FileOutputStream进行。


package com.oolong.common.util;

import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import java.io.*;
import java.util.*;

public class UserVar {
private static String configFile = "classpath*:param.properties";
private static org.springframework.core.io.Resource resourceWritable;
private static Properties p;

/**
* 注意事项:
* 1、properties放在source目录下
* 2、param.properties至少有一对键值对
*/
static {
p = new Properties();
org.springframework.core.io.Resource[] resources = null;
try {
   ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
   resources = resolver.getResources(configFile);
   if (resources != null) {
    for (org.springframework.core.io.Resource r : resources) {
   if (r != null) {
      p.load(r.getInputStream());
      resourceWritable = r;
   }
    }
   }
} catch (IOException e1) {
   e1.printStackTrace();
}
}

public static String get(String key) {
String v = (String) p.get(key);
if (v != null) {
   try {
    return new String(v.getBytes("ISO-8859-1"), "GBK");
   } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    return null;
   }
}
return null;
}

public static void set(String key,String value){
if (null != resourceWritable) {
   try {
    OutputStream fos = new FileOutputStream(resourceWritable.getFile());
    Properties p = new Properties();
    p.load(resourceWritable.getInputStream());
    value = new String(value.getBytes("GBK"),"ISO-8859-1");
    p.setProperty(key, value);
    p.store(fos, null);
    fos.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
}
}
}


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

https://www.uoften.com/program/jsp/20180413/48104.html
页: [1]
查看完整版本: JSP 中Spring的Resource类读写中文Properties实例代码