Properties操作如何保存到属性文件

 更新时间:2023年06月16日 11:21:02   作者:Zero摄氏度  
这篇文章主要介绍了Properties操作保存到属性文件的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1、系统属性

  • Java中系统属性就是Java的环境变量
  • System.getProperties()方法会返回系统属性值(Properties对象封装)
  • Properties对象的getProperty()方法返回一个String来代表系统属性。

2、Properties类

  • Properties类实现了从名字到值的映射
  • Properties是存储键值对的。是hashtable(map接口下的类)接口下的类。key,value都是字符串
  • getProperty()方法返回一个代表该属性值的字符串
  • 使用load()或store()方法能从文件读入属性集或将属性集写入文件
  • Properties在Java.util包内

3、Properties文件

存储数据时,不仅可以将数据存储到数据库中(虽然这是大多数人选择的做法)。同时,我们可以将数据保存在properties文件中。

这样的好处是,方便、安全,因为每个注册用户都有一个对应的properties文件,操作的系统内存,而不是数据库那样的外存,所以会相对安全,并发性也更好。

弊端是,如果设备断电后,数据将无法读取甚至可能损失。----但是一般如果使用这样方法存储的设备都会支持备用电源,足够时间去做好数据首尾工作。

4、Properties文件的读写操作

  • 首先,我们并不能直接对properties文件进行操作,而是必须先将properties文件读到propertires对象上,然后通过对象去set或者get,最后再将对象保存到属性文件。这样就是读写操作的过程

只要涉及Properties的操作,大体可以分为以下三步:

演示代码

import java.util.*;
import java.io.*;
public class ReadPro
{   static Properties props;
	private String oracle_url,oracle_name,oracle_user,oracle_pwd;
	private String file_path,virtual_path;
	static
	{
		try
		{
			props = new Properties();
			File f=new File(".\\OracleSetup.properties");
			FileInputStream in = new FileInputStream(f);
			props.load(in);
			in.close();
		}
		catch(IOException e)
		{
			System.out.println(e);
		}
	}
	public ReadPro()
	{
			this.oracle_url   = this.props.getProperty("oracle_url");
			this.oracle_name  = this.props.getProperty("oracle_name");
			this.oracle_user  = this.props.getProperty("oracle_user");
			this.oracle_pwd   = this.props.getProperty("oracle_pwd");
			this.file_path    = this.props.getProperty("file_path");
			this.virtual_path = this.props.getProperty("virtual_path");
		}
	public void loadproper()
	{    props.setProperty("oracle_user", "bush");
		 props.setProperty("password", "1234");
		 props.setProperty("age", "19");
         props.setProperty("sex", "female");
         props.setProperty("score", "99.9");
			try{
			FileOutputStream out = new 
			     FileOutputStream(".\\Bush.properties");
		    props.store(out, ".\\Bush.properties");
			out.close();
		   }
		  catch(IOException e)
		{
			System.out.println(e);
		}
	 }
	public String getOracle_url()
	{
		return oracle_url;
	}
	public String getOracle_name()
	{
		return oracle_name;
	}
	public String getOracle_user()
	{
		return oracle_user;
	}
	public String getOracle_pwd()
	{
		return oracle_pwd;
	}
	public String getFile_path()
	{
		return file_path;
	} 
	public String getVirtual_path()
	{
		return virtual_path;
	}
	public static void main(String args[])
	{
		ReadPro rp = new ReadPro();
		System.out.println("oracle_user="+rp.getOracle_user());
	    System.out.println("oracle_name = " + rp.getOracle_name());
		System.out.println("oracle_pwd = " +rp.getOracle_pwd());
		System.out.println("file_path = " +rp.getFile_path());
	    System.err.println("file_path = " +rp.getFile_path()); 
	    System.out.println("virtual_path = " +rp.getVirtual_path());
		//存储Properties 到属性文件
	    rp.loadproper();
	}	
}

将属性文件读到属性对象上

//new一个properties对象
			Properties props = new Properties();
			//新建一个输入流(属性文件),读取到properties对象里
			File f=new File(".\\OracleSetup.properties"); //这个属性文件需要先创建(已经存在的)
			FileInputStream in = new FileInputStream(f);
			//读入对象
			props.load(in);
			//关闭流
			in.close();

对属性对象操作,将对象保存到属性文件

 		
		//对属性对象进行set操作。以键值对的方式set,前面是字段key,后面是值value
		props.setProperty("oracle_user", "bush");
		 props.setProperty("password", "1234");
		 props.setProperty("age", "19");
         props.setProperty("sex", "female");
         props.setProperty("score", "99.9");
			try{
			FileOutputStream out = new 
			     FileOutputStream(".\\Bush.properties");//这个属性文件可以是不存在的,不存在系统会去自动创建,如果已存在系统会先删除再创建
              //将对象再保存到文件里
		    props.store(out, ".\\Bush.properties");
              //关闭输出流
			out.close();
		   }
		  catch(IOException e)
		{
			System.out.println(e);
		}

5、一些操作

  • 注册:将用户名、密码存到属性文件中
  • 登录:通过用户名找到对应的属性文件,如果找到,将属性文件中的密码和输入的密码比对,如果一致就成功登录。成功后,将上一次的属性文件的金额读到moneybean中。
  • 一系列存款取款等等操作,之后再将最后的余额set到属性对象,最后再将属性对象存储到属性文件中。

都离不开那三步。

到此这篇关于Properties操作如何保存到属性文件的文章就介绍到这了,更多相关Properties操作保存到属性文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA实现下载文件功能的两种方法

    JAVA实现下载文件功能的两种方法

    这篇文章主要介绍了JAVA实现下载文件功能的两种方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • java并发之ArrayBlockingQueue详细介绍

    java并发之ArrayBlockingQueue详细介绍

    这篇文章主要介绍了java并发之ArrayBlockingQueue详细介绍的相关资料,需要的朋友可以参考下
    2017-05-05
  • 实例分析java对象的序列化和反序列化

    实例分析java对象的序列化和反序列化

    序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这个相反的过程又称为反序列化
    2018-09-09
  • mybatis plus自动生成代码tinyint(1)自动转换为Boolean的问题及解决

    mybatis plus自动生成代码tinyint(1)自动转换为Boolean的问题及解决

    这篇文章主要介绍了mybatis plus自动生成代码tinyint(1)自动转换为Boolean的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Spring Boot Rest控制器单元测试过程解析

    Spring Boot Rest控制器单元测试过程解析

    这篇文章主要介绍了Spring Boot Rest控制器单元测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • java寻找迷宫路径的简单实现示例

    java寻找迷宫路径的简单实现示例

    这篇文章主要介绍了java寻找迷宫路径的简单实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 浅谈HashMap、HashTable的key和value是否可为null

    浅谈HashMap、HashTable的key和value是否可为null

    这篇文章主要介绍了浅谈HashMap、HashTable的key和value是否可为null,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • java一个接口多个实现类的调用方式

    java一个接口多个实现类的调用方式

    这篇文章主要给大家介绍了关于java一个接口多个实现类的调用方式的相关资料,经测试确认,当一个接口有多个实现时,调用时只会执行一个,有时候需要多个实现调用,需要的朋友可以参考下
    2023-09-09
  • 解决Spring AOP 同类调用失效问题

    解决Spring AOP 同类调用失效问题

    这篇文章主要介绍了解决Spring AOP 同类调用失效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 使用Spring Boot实现操作数据库的接口的过程

    使用Spring Boot实现操作数据库的接口的过程

    本文给大家分享使用Spring Boot实现操作数据库的接口的过程,包括springboot原理解析及实例代码详解,感兴趣的朋友跟随小编一起看看吧
    2021-07-07

最新评论