properties文件是我们经常需要操作一种文件,它使用一种键值对的形式来保存属性集。

无论在学习上还是工作上经常需要读取,修改,删除properties文件里面的属性。

本文通过操作一个properties去认识怎样操作properties文件。

Java提供了Properties这个类Properties(Java.util.Properties),用于操作properties文件。

这是配置文件,file.properties

type=mysql
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db?characterEncoding=utf-8
username=root
password=root
public class PropertiesDemo {

    public static final Properties p = new Properties();
public static final String path = "file.properties";

初始化:

    /**
* 通过类装载器 初始化Properties
*/
public static void init() {
//转换成流
InputStream inputStream =
PropertiesDemo.class.getClassLoader().getResourceAsStream(path);
try {
//从输入流中读取属性列表(键和元素对)
p.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}

获取:

    /**
* 通过key获取value
* @param key
* @return
*/
public static String get(String key) {
return p.getProperty(key);
}

修改或者新增:

    /**
* 修改或者新增key
* @param key
* @param value
*/
public static void update(String key, String value) {
p.setProperty(key, value);
FileOutputStream oFile = null;
try {
oFile = new FileOutputStream(path);
//将Properties中的属性列表(键和元素对)写入输出流
p.store(oFile, "");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
oFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

删除:

    /**
* 通过key删除value
* @param key
*/
public static void delete(String key) {
p.remove(key);
FileOutputStream oFile = null;
try {
oFile = new FileOutputStream(path);
p.store(oFile, "");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
oFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

获取所有:

    /**
* 循环所有key value
*/
public static void list() {
Enumeration en = p.propertyNames(); //得到配置文件的名字
while(en.hasMoreElements()) {
String strKey = (String) en.nextElement();
String strValue = p.getProperty(strKey);
System.out.println(strKey + "=" + strValue);
}
}

测试:

public static void main(String[] args) {
PropertiesDemo.init(); //修改
PropertiesDemo.update("password","123456");
System.out.println(PropertiesDemo.get("password")); //删除
PropertiesDemo.delete("username");
System.out.println(PropertiesDemo.get("username")); //获取所有
PropertiesDemo.list();
}

Java读取修改Properties文件的更多相关文章

  1. java读取本地properties文件

    package cn.edu.hbcf.pojo; import java.io.FileNotFoundException; import java.io.IOException; import j ...

  2. java加载properties文件的六中基本方式实现

    java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载: 另一种是通过impo ...

  3. SpringBoot读取application.properties文件

    http://blog.csdn.net/cloume/article/details/52538626 Spring Boot中使用自定义的properties Spring Boot的applic ...

  4. java加载properties文件的六种方法总结

    java加载properties文件的六种方法总结 java加载properties文件的六中基本方式实现 java加载properties文件的方式主要分为两大类:一种是通过import java. ...

  5. 直接读取修改exe文件

    1. 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端:也有的方式是在外部直接修 ...

  6. docker 初始化执行.sh修改.properties文件

    1.testmysql.properties rootuser=aarootpass=bb 2.用环境变量修改testmysql.properties里面的rootuser和rootpass的值的脚本 ...

  7. java读取 500M 以上文件,java读取大文件

    java 读取txt,java读取大文件 设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址 来源博客http://yijianfengvip.blog.163.c ...

  8. Java代码操作properties文件(读取,新增/修改,删除)

    项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...

  9. Java Bean 获取properties文件的读取

    实际的开发过程中,将一些配置属性从java代码中提取到properties文件中是个很好的选择,降低了代码的耦合度.下面介绍两种通过spring读取properties文件的方法,以ip地址配置为例. ...

随机推荐

  1. 虚拟机安装centos7, 再安装gitlab 简单步骤

    先安装Linux centos7(朋友贡献的. Linux官网有下) 我自己用vm安装的. 未出现特殊状况 gitlab的搭建 安装基础包 yum -y install curl policycore ...

  2. MyBatis Generator中文文档

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看 ...

  3. Spring Boot学习笔记:传统maven项目与采用spring boot项目区别

    项目结构区别 传统的maven构建的项目结构如下: 用maven构建的采用springboot项目结构如下: 二者结构一致,区别如下:传统项目如果需要打成war包,需要在WEB-INF目录结构配置we ...

  4. springMVC学习 六 跳转方式

    SpringMVC的controller中的方法执行完之后,默认的跳转方式是请求转发 如果想要修改跳转方式,可以设置返回值字符串内容(1) 添加 redirect:资源路径 重定向 "red ...

  5. ssh安装

    http://blog.chinaunix.net/uid-20791108-id-3761681.htmlhttp://www.cnblogs.com/mliudong/p/4094519.html ...

  6. ubuntu samba共享后windows读写文件都是以nogroup问题

    添加smb账号 sudo smbpasswd -a xxx 如果报错:Failed to add entry for user xxx 则是因为这个账号不存在 添加成功以后,过一会就可以重新登陆了(u ...

  7. AJAX-DOM事件

    1.DOM事件 1.select的onchange事件 当选项框中的内容发生改变时需要出发的事件.2.Ajax 1.名词解释 1.同步 在一个任务进行中,不能开启其它的任务. 同步访问:浏览器在向服务 ...

  8. MZOJ 1134: 二叉苹果树

    按书上大的,dfs还需加强 #include <bits/stdc++.h> #define read read() using namespace std; int read { ; c ...

  9. IPython:一种交互式计算和开发环境(魔术命令,快捷键)

    %run命令 在IPython会话环境中,所有文件都可以通过%run命令当做Python程序来运行. 假设在ipython_script_test.py中存放了一段简单的脚本,如下所示: def f( ...

  10. 集成 dubbo 微服务

    微服务架构近年来非常的火,阿里 的dubbo 是其中的一种解决方案. dubbo 的微服务主要分为以下几部分: 1.注册中心 2.服务提供者 3.消费者 4.监控平台 1.一般流程服务提供者向注册中心 ...