文档章节

利用Spring的Resource类读写中文Properties

许乌龙
 许乌龙
发布于 2016/04/05 23:59
字数 195
阅读 137
收藏 1
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();
      }
    }
  }
}


© 著作权归作者所有

许乌龙
粉丝 86
博文 18
码字总数 31823
作品 0
广州
个人站长
私信 提问
主题:学习Spring必学的Java基础知识(8)----国际化信息

引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”。以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Jav...

again-Y
2014/11/25
209
0
ssh乱码问题处理

以我自己的了解,在进行struts开发的过程中,总也是出现很多的乱码问题 ,但归根到底,也只是以下三种情况: ㈠页面显示中文乱码 ㈡传递参数中文乱码 ㈢国际化资源文件乱码 下面就这三中情况...

物理代码男
2013/08/25
270
0
Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 Web 相关工具类

Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大...

lvzjane
2014/03/01
124
0
javaweb简单实现国际化信息输出(参考)

 使用spring自带的功能实现信息国际化输出,需要导入spring.jar文件 过程思路: 1、新建messageszhCN.properties中文属性配置文件(zh_CN代表中国大陆,一般格式都是固定的,默认在src目...

指尖残雪
2016/05/22
50
0
Spring中的优秀工具类(1):文件资源操作和 Web 相关工具类

文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等。我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般...

采女孩的小蘑菇1
2014/03/31
126
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.3K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
39
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部