1、Properties类介绍

  (1)Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串;

  (2)特点

  Hashtable的子类,map集合中的方法都可以用;

  该集合没有泛型。键值都是字符串;

  它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备;

  有和流技术相结合的方法。

 import java.util.Properties;
import java.util.Set; /*
*
* Properties集合,它是唯一一个能与IO流交互的集合
*
* 需求:向Properties集合中添加元素,并遍历
*
* 方法:
* public Object setProperty(String key, String value)调用 Hashtable 的方法 put。
* public Set<String> stringPropertyNames()返回此属性列表中的键集,
* public String getProperty(String key)用指定的键在此属性列表中搜索属性
*/
public class PropertiesDemo01 {
public static void main(String[] args) {
// 创建集合对象
Properties prop = new Properties();
// 添加元素到集合
// prop.put(key, value);
prop.setProperty("a", "a1");
prop.setProperty("b", "b1");
prop.setProperty("c", "c1"); // System.out.println(prop);//测试的使用
// 遍历集合
Set<String> keys = prop.stringPropertyNames();
for (String key : keys) {
// 通过键 找值
// prop.get(key)
String value = prop.getProperty(key);
System.out.println(key + "==" + value);
}
}
}

2、将集合中内容存储到文件

  (1)需求:使用Properties集合,完成把集合内容存储到IO流所对应文件中的操作;

  (2)分析:

  创建Properties集合;

  添加元素到集合;

  创建流;

  把集合中的数据存储到流所对应的文件中。

 import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties; public class PropertiesDemo02 {
public static void main(String[] args) throws IOException {
// 1,创建Properties集合
Properties prop = new Properties();
// 2,添加元素到集合
prop.setProperty("a", "a1");
prop.setProperty("b", "b1");
prop.setProperty("c", "c1"); // 3,创建流
FileWriter out = new FileWriter("d:\\Java\\prop.properties");
// 4,把集合中的数据存储到流所对应的文件中
prop.store(out, "save data");
// 5,关闭流
out.close();
}
}

  运行结果:在d盘根目录下生成prop.properties

  

3、读取文件中的数据,并保存到集合

  (1)需求:从属性集文件prop.properties 中取出数据,保存到集合中
  (2)分析:
  创建集合
  创建流对象
  把流所对应文件中的数据 读取到集合中
    load(InputStream)  把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
    load(Reader)  
  关闭流
  显示集合中的数据

 import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties; public class PropertiesDemo03 {
public static void main(String[] args) throws IOException {
// 1,创建集合
Properties prop = new Properties();
// 2,创建流对象
FileInputStream in = new FileInputStream("d:\\Java\\prop.properties");
// FileReader in = new FileReader("prop.properties");
// 3,把流所对应文件中的数据 读取到集合中
prop.load(in);
// 4,关闭流
in.close();
// 5,显示集合中的数据
System.out.println(prop); }
}

  运行结果:
  

  注意:使用字符流FileReader就可以完成文件中的中文读取操作了

00096_Properties类的更多相关文章

  1. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  2. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

  3. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  6. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  7. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  8. PHP-解析验证码类--学习笔记

    1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $char ...

  9. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

随机推荐

  1. 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)

    不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...

  2. tcpg通信

    1.客户端 from socket import * def main(): # 创建套接字 tcp_socket = socket(AF_INET,SOCK_STREAM) # 链接服务端 ip = ...

  3. 今日SGU 5.22

    SGU 296 题意:给你一个最多1000位的数,让你删除k位使得剩下的数最大 收获:贪心 #include<bits/stdc++.h> #define de(x) cout<&l ...

  4. flex RemoteObject 的两种使用方法

    这里使用的是django1.6 和 postgreSQL9.0  FlashBuilder4.5 django方面就不说了,根据文档来做,建好模块,配置好数据库等等 创建 gateway 和 time ...

  5. 【Uva 242】Stamps and Envelope Size

    [Link]: [Description] 给你n个集合; 每个集合都包含一些不同面额的邮票; (每种邮票都当做有无限张) 然后给你一封信上最多能贴的邮票张数S; 问你,哪一个集合的邮票; 能够贴出来 ...

  6. ItelliJ IDEA开发工具使用—创建一个web项目(转)

    最近想用IDEA编辑器开发,但是平时都用MyEclipse和eclipse习惯了,突然间用IDEA到处碰壁的感觉.在不断的摸索之后终于苦尽甘来,学会了基本的web程序如何创建以及运行了.期间在网上找了 ...

  7. android 动画xml属性具体解释

    /** * 作者:crazyandcoder * 联系: * QQ : 275137657 * email: lijiwork@sina.com * 转载请注明出处! */ android 动画属性具 ...

  8. apicloud中的sqlite操作模块db

    db 模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大的简化了数据持久化问题. 1.执行 var db = api.require('db'); db.execute ...

  9. CHROME开发者工具的小技巧

    我猜不能转载,但是必须分享. http://coolshell.cn/articles/17634.html

  10. 英语 用on还是/at/还是in

      in prep. 1. [表示地点.场所.位置等]在…里面:在…内部:在…上:例句: in the room 在房间里 2. [表示时间]在…期间:在(一段时间)以内:过…之久:例句: in su ...