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. (转)Android开发之封装标题栏

    文章转自 CoderAbsolom  的 http://blog.csdn.net/qq_14923661/article/details/52003447 写在前面: 标题栏这个部分,绝大多数App ...

  2. 8N - 水果

    夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了 ...

  3. mybatis入门--#{}和${}的区别

    我们知道,在mybatis中,sql语句是需要我们自己写的.跟在普通的sql不一样的是,我们在使用mybatis框架的时候,使用的占位符不是 ? 而是 #{} 有时候还会出现这个符号 ${} 这些符号 ...

  4. javascript的变量类型:var、let、const

    不同点:可变性,与作用域的关系. 可变性:const定义的变量都不可变,而var和let可以任意更改. const 只能在声明时被初始化一次,之后不允许将全新的值赋值给const变量.但可以修改con ...

  5. gerrit管理下的git代码提交小技巧

    1.提交代码git checkout targetbranch 切换至目标分支git pull origin targetbranch 拉取目标分支最新内容git add 修改文件git commit ...

  6. git报“commiter email "root@localhost.localdomain"does not match your user account”

    首先检查账户邮箱配置是否正确,检查方法: git config --list 发现邮箱及帐号配置正确,但是git push时仍然报如题错误: 原因:git执行add.commit 时已经记录下了做了该 ...

  7. python实现文件下载图片视频

    最近在学习爬虫,在爬取网站时很多时候是需要将图片或视频下载到本地 今天就来说说如何使用urllib将图片保存到本地 以下代码均为win7  python3.6.* 方法一(使用下载函数保存) from ...

  8. 转载(windows下安装mysql)

    转载请声明出处:http://blog.csdn.net/u013067166/article/details/49951577             最近重装了系统,去MySQL官网下载了最新的M ...

  9. 使用VNC连接管理VPS

    本文基于:Kvm+Windows2008 VPS+VNCviewer 有时候遇上IP没设置好,IP被封,调整磁盘,重置windows系统密码等等使用基于VNC的控制台对VPS进行操作是非常方便的. 有 ...

  10. Netty 源码 ChannelHandler(三)概述

    Netty 源码 ChannelHandler(三)概述 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 一.Channel ...