项目需要在Properties配置文件中设置一些配置属性,其中包含一些中文属性。经过一上午的奋斗终于圆满解决问题。

读取Properties文件所有属性

Map<String, String> strings = new HashMap<>();

Properties pros = new Properties();
InputStream is=PropertiesContoller.class.getClassLoader().getResourceAsStream(
"sysConfig.properties");//获取到根目录下的Properties资源文件
pros.load(is);
Iterator<String> it = pros.stringPropertyNames().iterator();
while (it.hasNext()) {
String key = it.next();
String value = new String(pros.getProperty(key).getBytes("ISO-8859-1"), "gbk");//因为资源文件中存在着中文值,所以要用这种编码方式给他转码,不然会产生乱码
strings.put(key, value);
}
is.close();
修改Properties文件属性
URL fileUrl = PropertiesContoller.class.getClassLoader().getResource("sysConfig.properties");//得到文件路径
OutputStreamWriter fos = null;//OutputStreamWriter可以进行转码,这样就可以在properties文件中存中文的键值,不然存储的是转码后的中文
Properties pro=new Properties();
try {
Properties pros = new Properties();
InputStream is=PropertiesContoller.class.getClassLoader().getResourceAsStream(
"sysConfig.properties");
pros.load(is);
Iterator<String> it = pros.stringPropertyNames().iterator();
while (it.hasNext()) {
String k = it.next();
String v = new String(pros.getProperty(k).getBytes("ISO-8859-1"), "gbk");
if(k.equals(key)){
pro.put(k,value);
}else {
pro.put(k,v);
}
}
is.close();
fos =new OutputStreamWriter( new FileOutputStream(new File(fileUrl.toURI())));
pro.store(fos,null);
   //存之前一定要先读后写,资源文件中原有的配置会被存储的属性覆盖掉
    ajaxJson.setSuccess(true);
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
 

Properties文件读写问题的更多相关文章

  1. properties文件读写工具类

    java代码: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; ...

  2. properties文件读写工具类PropertiesUtil.java

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  3. Java程序员的日常—— Properties文件的读写

    在日常的Java程序开发中,Properties文件的读写是很常用的.经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整. 那么本片就来简单的介绍下,如何使用Prop ...

  4. Android 对 properties文件的读写操作

    -. 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下 ...

  5. K:java中properties文件的读写

    Properties类与.properties文件:   Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集的类,不过Properties有特殊 ...

  6. Java读写.properties文件实例,解决中文乱码问题

    package com.lxk.propertyFileTest; import java.io.*; import java.util.Properties; /** * 读写properties文 ...

  7. 120prop-python3.7 读写.properties文件

    120prop-python3.7 读写.properties文件 转载 nature_ph 最后发布于2019-07-30 10:12:05 阅读数 229 收藏 发布于2019-07-30 10: ...

  8. 实现对properties文件的有序读写

    最近遇到一项需求,要求把properties文件中的内容读取出来供用户修改,修改完后需要再重新保存到properties文件中.很简单的需求吧,可问题是Properties是继承自HashTable的 ...

  9. 读写properties文件方法

    按key读取properties文件中的value public static String readSystemConfig(String key){ Properties prop = new P ...

随机推荐

  1. linux性能调试之vmstat

    linux性能监控调优工具vmstat: vmstat:用于监控.显示系统运行过程中的虚拟内存/CPU/磁盘状态. 简单示例(时间间隔2s,监控2次): 重要字段解释: r 表示运行队列(等待运行的进 ...

  2. Java注解学习笔记

    我们平常写Java代码,对其中的注解并不是很陌生,比如说写继承关系的时候经常用到@Override来修饰方法.但是@Override是用来做什么的,为什么写继承方法的时候要加上它,不加行不行.如果对J ...

  3. 内部办公网与IDC机房的GRE隧道配置实践

    背景 公司内网与机房服务器为了实现用内网IP通信的功能,故使用了linux的IP gre隧道的方式.使得公司内部可以直接通过路由直连的方式访问机房服务器. 拓扑图如下: 注:拓扑中的外网IP为虚构的I ...

  4. ava集合---ArrayList的实现原理

    一.ArrayList概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存 ArrayList不是线程安全的,只能用在单线程环境下,多 ...

  5. Javascript中几个看起来简单,却不一定会做的题

    Javascript作为前端开发必须掌握的一门语言,因为语言的灵活性,有些知识点看起来简单,在真正遇到的时候,却不一定会直接做出来,今天我们就一起来看看几道题目吧 题目1 var val = 'smt ...

  6. 功能测试很low?不能升级到高级测试工程师?

    功能测试很low?不能升级到高级测试工程师? 功能测试很low?功能测试很简单?功能测试就是黑盒测试?功能测试没有技术含量?功能测试工资低?只会功能测试没有竞争力?功能测试这活初中生都可以干?功能测试 ...

  7. 多线程 Synchronized关键字和Lock

    Synchronized  分为实例锁和全局锁. 实例锁为 synchronized(this) 和 非static synchronized方法.   也加对象锁. 只要一个线程访问这类的一个syn ...

  8. Alpha第九天

    Alpha第九天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  9. 课堂作业 泛型类-Bag

    自定义泛型类Bag 一.具体代码: 代码连接 二.伪代码: 1.思路: 老师讲完后我的想法是要做出一个类似于List的Bag,首先它的本身是又数组构成的并且是可自动增加长度的,然后实现一些基本的操作, ...

  10. 201621123050 《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 结合题集题目7-1回答 1.1 自己以前编写的代码中经常出现 ...