java 顺序 读写 Properties 配置文件 ,java默认提供的Properties API 继承hashmap ,不是顺序读写的。

特从网上查资料,顺序读写的代码,如下,

import java.util.Collections;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Properties;
import java.util.Set;public class OrderedProperties extends Properties {private static final long serialVersionUID = -4627607243846121965L;private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();public Enumeration<Object> keys() {return Collections.<Object> enumeration(keys);}public Object put(Object key, Object value) {keys.add(key);return super.put(key, value);}public synchronized Object remove(Object key) {keys.remove(key);return super.remove(key);}public Set<Object> keySet() {return keys;}public Set<String> stringPropertyNames() {Set<String> set = new LinkedHashSet<String>();for (Object key : this.keys) {set.add((String) key);}return set;}
}

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Properties;public class PropertiesTest {public static void main(String[] args) {String readfile = "D:/eclipseworkspace/test/src/test.txt";Properties pro = readPropertiesFileObj(readfile); // 读取properties文件System.out.println(pro.getProperty("password0.9271224287974811"));pro.remove("password0.008229652622303574");writePropertiesFileObj(readfile, pro); // 写properties文件
    }// 读取资源文件,并处理中文乱码public static Properties readPropertiesFileObj(String filename) {Properties properties = new OrderedProperties();try {InputStream inputStream = new FileInputStream(filename);BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));properties.load(bf);inputStream.close(); // 关闭流} catch (IOException e) {e.printStackTrace();}return properties;}// 写资源文件,含中文public static void writePropertiesFileObj(String filename, Properties properties) {if (properties == null) {properties = new OrderedProperties();}try {OutputStream outputStream = new FileOutputStream(filename);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));properties.setProperty("username" + Math.random(), "myname");properties.setProperty("password" + Math.random(), "mypassword");properties.setProperty("chinese" + Math.random(), "中文");properties.store(bw, null);outputStream.close();} catch (IOException e) {e.printStackTrace();}}
}

转载于:https://www.cnblogs.com/xiongjinpeng/p/3864987.html

java 顺序 读写 Properties 配置文件 支持中文 不乱码相关推荐

  1. java properties中文_Java读写.properties文件解决中文乱码问题

    一般使用到properties配置文件,一般都是在spring项目里面,直接由框架帮你读,当然,你也得考虑到编码的问题. 但是现在要是要求使用Java直接读写properties文件,就发现很多的问题 ...

  2. java 写入properties文件_Java读写Properties配置文件

    Java读写Properties配置文件,1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存 ...

  3. nginx文件服务器中文路径,nginx配置文件支持中文路径.htm

    nginx配置文件支持中文路径 nginx配置文件支持中文路径 例子: server { color=#ff0000>charset utf-8; listen 8088;         se ...

  4. JAVA代码实现Excel下载,中文名称乱码问题

    #JAVA代码实现Excel下载,中文名称乱码问题 ##第一:检查乱码的服务器版本是否在代码中进行处理 ###处理方式: if(request.getHeader("user-Agent&q ...

  5. java读写properties配置文件方法

    1.Properties类 Properties类表示了一个持久的属性集.Properties可保存在流中或从流中加载,属性列表中的key和value必须是字符串. 虽然Properties类继承了j ...

  6. Java 读写Properties配置文件

    转自:https://www.cnblogs.com/xudong-bupt/p/3758136.html 1.Properties类与Properties配置文件 Properties类继承自Has ...

  7. java如何写对象配置文件,Java 读写Properties配置文件详解

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

  8. java properties 保存_Java 读写Properties配置文件

    转自:https://www.cnblogs.com/xudong-bupt/p/3758136.html 1.Properties类与Properties配置文件 Properties类继承自Has ...

  9. java html转pdf 无法支持中文_java项目实现html转pdf的需求(支持中文和CSS样式)

    java项目中用到了html转pdf的需求,现在写一个自己认为最优方案的总结,虽然还是有一些小的bug 为了保证中文的支持需要在被转换的html添加body的添加中文字体样式,保持这个字体和后边转换p ...

最新文章

  1. Xen与KVM虚拟化技术调研报告
  2. @onetoone中被控表不能做自我删除吗?_儿童生活自律表,孩子总是不能坚持,那是因为父母犯了这4个错误...
  3. FFmpeg - 音频解码过程
  4. 联想 键盘 fn linux,开发者提交补丁,Linux 5.10 或支持联想 PC 键盘快捷键
  5. jts116_JTS T 116-2019水运建设工程概算预算编制规定.pdf
  6. Drools教程 —— 安装及eclipse项目创建
  7. [十大谬论]常见的逻辑谬误与批判方法
  8. 室内 Beacon定位室外 GPS 定位 大型场馆融合定位方案
  9. 中国大数据技术大会(BDTC 2022)企业数据智能专题论坛,7月17日淄博见
  10. js获取唯一设备码_前端JS获取设备IP地址和唯一标识
  11. idea取消英语拼音提示绿色波浪线
  12. 晶体管介绍工作原理与历史
  13. 初尝vue-element-admin
  14. 使用前端js代码开发了一个图片转ico图标的功能
  15. 性能测试指标及常用监控工具
  16. Invalid bound statement (not found): com.exam.mapper.UserMapper.findbyid
  17. 家居装修选购:挑选家用沙发的8个禁忌
  18. 移动客户端与服务器通信方式一
  19. 城市大脑一网统管建设解决方案 城市大脑一网统管及领导驾驶舱系统建设解决方案
  20. 《现代命令行工具指南》10. 管理工具:在隔离环境中安装和运行 Python 命令行工具 - Pipx

热门文章

  1. 【深度学习】医学图像分割多标签损失函数和极坐标变换
  2. 【深度学习入门到精通系列】什么是消融实验(Ablation experiment)
  3. python【力扣LeetCode算法题库】17-电话号码的字母组合
  4. phpexecl保存mysql_【PHP】将数据库表保存为Excel(PHPExcel)
  5. 湖南网络推广浅析外链怎么发才会更快的收录?
  6. 浅析网站过度优化的成因应如何规避?
  7. 浅析手机端网站建设的基本流程
  8. db2查看表结构_mysql误删数据库表的frm文件和ibd文件?试试这样恢复
  9. 均值已知检验方差_方差分析案例
  10. 大数据之父_大新闻!Python 之父重新出山,加入微软开发部