Java读取properties文件工具类并解决控制台中文乱码
1、建立properts文件(error.message.properties)
HTTP201= 请求成功并且服务器创建了新的资源

2、在spring-mvc.xml文件(applicationContext-mvc.xml)中配置properties工具类路径及读取properties文件的路径
<bean id="propertyConfigurer" class="com.yjlc.platform.utils.PropertyConfigurer" >
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:error.message.properties</value>
</list>
</property>
<property name="fileEncoding" value="UTF-8"></property>
</bean>

3、建立properts读取工具类
package com.yjlc.platform.utils; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import java.util.Properties; /**
* --------------------------------------------------------------
* CopyRights(c)2018,YJLC
* All Rights Reserved
* <p>
* FileName: PropertyConfigurer.java
* Description:错误信息文件读取工具类
* Author: cyb
* CreateDate: 2019-01-18
* --------------------------------------------------------------
*/
public class PropertyConfigurer extends PropertyPlaceholderConfigurer {
private Properties props; // 存取properties配置文件key-value结果 @Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
throws BeansException {
super.processProperties(beanFactoryToProcess, props);
this.props = props; }
//输入配置文件中的key 获取对应的值
public String getProperty(String key){
return new String(props.getProperty(key)); } public String getProperty(String key, String defaultValue) {
return this.props.getProperty(key, defaultValue);
} public Object setProperty(String key, String value) {
return this.props.setProperty(key, value);
}
}
4、建立对应的service及实现类
(1) Service接口(GetMessageInfoService )
package com.yjlc.platform.upgrade.common.service; import java.io.UnsupportedEncodingException; /**
* --------------------------------------------------------------
* CopyRights(c)2018,YJLC
* All Rights Reserved
* <p>
* FileName: GetMessageInfoService.java
* Description:获取错误信息service
* Author: cyb
* CreateDate: 2019-01-18
* --------------------------------------------------------------
*/
public interface GetMessageInfoService { /**
* 第四种实现方式获取properties文件中指定key的value
*
* @param key
*
* @return
*/
String getProperyByFourthWay(String key) throws UnsupportedEncodingException; /**
* 第四种实现方式获取properties文件中指定key的value
*
* @param key
*
* @param defaultValue
*
* @return
*/
String getProperyByFourthWay(String key, String defaultValue); }
Service实现类
package com.yjlc.platform.upgrade.common.service.impl; import com.yjlc.platform.upgrade.common.service.GetMessageInfoService;
import com.yjlc.platform.utils.PropertyConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; /**
* --------------------------------------------------------------
* CopyRights(c)2018,YJLC
* All Rights Reserved
* <p>
* FileName: PropertiesServiceImpl.java
* Description:获取错误信息service实现类
* Author: cyb
* CreateDate: 2019-01-18
* --------------------------------------------------------------
*/
@Service
public class GetMessageInfoServiceImpl implements GetMessageInfoService { @Autowired
private PropertyConfigurer pc; @Override
public String getProperyByFourthWay(String key) {
return pc.getProperty(key);
} @Override
public String getProperyByFourthWay(String key, String defaultValue) {
return pc.getProperty(key, defaultValue);
} }
5、调用测试
@Controller
@RequestMapping("/upInformation/")
public class UPInformationController {
@Autowired
GetMessageInfoService getMessageInfoService; @RequestMapping("forwardInfo")
@ResponseBody
public Map<String,Object> forwardInfo(UPInformationComment informationComment,String status) throws UnsupportedEncodingException {
Map<String,Object> map = new HashMap<>(); String value= getMessageInfoService.getProperyByFourthWay("HTTP201"); } }
6、控制台打印中文乱码问题解决
找到intellij idea安装目录,bin文件夹下面idea64.exe.vmoptions和idea.exe.vmoptions这两个文件,分别在这两个文件中添加:-Dfile.encoding=UTF-8
第二步:找到intellij idea的file---settings---Editor---FileEncodings的GlobalEncoding和ProjectEncoding和Default encoding for properties都配置成UTF-8
第三步:在部署Tomcat的VM options项中添加:-Dfile.encoding=UTF-8

第四步:重启Intellij idea即可解决乱码问题(一定要关闭idea重新打开)
此篇博客,本人参照了以下博主的内容,再根据自己的需求进行了整合,若需要查看详细内容,大家可以前往以下链接查看:https://www.cnblogs.com/hafiz/p/5876243.html#commentform
技术在于交流!
Java读取properties文件工具类并解决控制台中文乱码的更多相关文章
- Java读取properties配置文件工具类
1. PropertyUtils.java package javax.utils; import java.io.InputStream; import java.util.Properties ...
- 读取Properties文件工具类
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...
- java读取properties的工具类PropertiesUtil
package org.properties.util; import java.io.FileInputStream; import java.io.FileOutputStream; import ...
- java读取properties文件工具
public class PropertiesUtil { public static String get(String filePath, String key) { String val = n ...
- java读取.txt文件工具类FileUtiles
public class FileUtils { private static final String ENCODING = "UTF-8";//编码方式 /** * 获取文件的 ...
- java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题
//文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String ...
- 读取Config文件工具类 PropertiesConfig.java
package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- 用java读取properties文件--转
今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享. 下面直接贴出代码:java类 public class Mytest pub ...
随机推荐
- Django | Cookie 中文编码的问题
在Django中,向cookie写入中文字符后会报错:如向cookie中保存用户名,当用户名存在中文字符时: Traceback (most recent call last): File , in ...
- ftp 读取目录列表失败
在防火墙设置的“例外”选项卡中添加程序: C:\WINDOWS\system32\inetsrv\inetinfo.exe,确定即可!
- 团队项目alpha冲刺
Deadline: 2018-11-18 22:00PM,以博客提交至班级博客时间为准 提交: (a) 项目课堂演示: (b) 7篇冲刺随笔,组内可共享: (c) 1篇测试随笔,组内可共享: (d) ...
- Django 学习笔记(一) --- Hello Django
人生苦短 ~ Tips:仅适用于 Python 3+(反正差别不大,py2 改改也能用).因为据 Python 之父 Guido van Rossum 说会在 2020 年停止对 Python 2 的 ...
- 设计node.js搭建多人博客的思路(不讲数据库)
1.1.4:搭建多人博客 1.功能分析 搭建一个简单的多人注册,登录,发表文章及登出功能的博客 2.设计目标 未登录:主页左侧导航显示home.login.register,右侧显示已发表文章,发表日 ...
- RocketMQ的broker启动失败解决
RocketMQ的broker用如下命令启动: nohup sh bin/mqbroker -n localhost:9876 & 使用jps查看,系统非常卡顿,broker的名字也未显示.使 ...
- C#微信公众号开发--微信事件交互
前言 一切准备工作就绪时就先实现一个关注公众号后向客户端推送一条消息.关注后推送消息需要一个get请求.一个post请求,get请求主要是为了向微信服务器验证,post请求主要就是处理微信消息了. 调 ...
- 自动化运维(1)之二进制部署MySQL5.7
二进制部署MySQL5.7 这个文档用于基础解释,后面通过ansible的自动化对MySQL单实例进行安装部署. 1.解压文件 # tar zxvf mysql-5.7.22-linux-glibc2 ...
- WebService学习概念总结
概念总结:WebSerevice是一种跨编程语言和跨操作系统平台的远程调用技术传输协议:HTTP技术构成:XML+XSD,SOAP,WSDL XML封装数据格式,解决数据表示问题 XSD定 ...
- java Future用法和意义一句话击破
在并发编程时,一般使用runnable,然后扔给线程池完事,这种情况下不需要线程的结果. 所以run的返回值是void类型. 如果是一个多线程协作程序,比如菲波拉切数列,1,1,2,3,5,8...使 ...