Java学习笔记31(IO:Properties类)
Properties类,表示一个持久的j集,可以存在流中,或者从流中加载
是Hashtable的子类 map集合的方法都能用
用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客户是无法操作源码的,当我们链接数据库时,需要在源码中写数据库名,密码,那么当客户需要更换数据库或者改密码时,就需要在源码中更改,这是非常不方便的,因此就用到这个类,在外部创建一个文件,文件中写上数据库名,密码,然后java代码读这个文件,这样客户就可以直接更改这个文件的内容来达到目的,方便操作。(具体请看Java学习笔记36)
Properties用法:
package com.zs.Demo; import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Set; public class Dmeo3 {
public static void main(String[] args) {
try {
fun1();
fun2();
} catch (IOException e) {
e.printStackTrace();
}
}
//关于Properties集合添加元素,获得数据,遍历数据
private static void fun2() throws IOException {
FileOutputStream fo=new FileOutputStream("d:\\ch.properties");
Properties p=new Properties();
//给p对象添加元素,键-值
p.setProperty("name", "张三");
p.setProperty("age", "18");
p.setProperty("password", "10010");
//map集合添加元素方法也能用
p.put("sex", "男");
//store方法将properties表中的属性列表写入输出字符
p.store(fo,"");
fo.close();
//stringPropertyNames()将集合中的键存入一个set集合
Set<String> set = p.stringPropertyNames();
//遍历set集合
for (String s : set) {
System.out.println(s+":"+p.get(s));
/*age:18
name:张三
password:10010*/
}
System.out.println(p);//{age=18, password=10010, name=张三} 结果是无序的
} private static void fun1() throws IOException {
Properties p=new Properties();
FileInputStream f=new FileInputStream("e:\\workspace\\d33\\src\\user.properties");
//load方法,将文件中的键值对加载到集合中
p.load(f);
f.close();
System.out.println(p);//{password="1008611", name="张三"}
}
}
流操作规律总结:
流对象很多 解决问题(处理设备上数据)到底用哪儿个流
源:InputStream Reader
目的地:OutputStream Writer
明确要操作的文件是字节文件还是文本
字节:InputStream OutputStream
文本:Reader Writer
明确数据所在的具体设备:
源设备:硬盘,文件file开头
内存:数组,字符串
关于读取,In/Output的认识:
字节在内存中(In) 在内存外(磁盘上)(Out)
内存读Reader(read方法)磁盘上的数据到内存就是输入(Input)
磁盘写Writer(write方法)内存中的数据到磁盘就是输出(Output)
Java学习笔记31(IO:Properties类)的更多相关文章
- Java学习笔记41(Properties类)
Properties可以做到集合的数据持久存储 它是map接口的一个实现类,可以使用map类的方法, 不过存在区别:它没有泛型,规定键类型为字符串 这个集合在以后的开发中会经常用到,比如连接数据库等 ...
- java学习笔记07--日期操作类
java学习笔记07--日期操作类 一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...
- java学习笔记之日期日历类
java学习笔记之日期日历 Date日期类概述: 表示特定的瞬间,精确到毫秒 Date类的构造方法: 1.空参数构造方法 Date date = new Date(); 获取到当前操作系统中的时间和日 ...
- java学习笔记之IO编程—File文件操作类
1. File类说明 在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一一个与文件本身操作( ...
- 【原】Java学习笔记033 - IO
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:继承关系中爷 ...
- Java学习笔记--文件IO
简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...
- java学习笔记之IO编程—内存流、管道流、随机流
1.内存操作流 之前学习的IO操作输入和输出都是从文件中来的,当然,也可以将输入和输出的位置设置在内存上,这就需要用到内存操作流,java提供两类内存操作流 字节内存操作流:ByteArrayOutp ...
- java新手笔记31 集合实现类
Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...
- Java学习笔记24(Integer类)
这里介绍基本数据类型包装类,Integer是int的包装类, 其他的基本数据类型的包装类的方法和Integer的方法几乎一致,会一种即可全会 基本数据类型包装类的特点:用于在基本数据类型和字符串之间进 ...
随机推荐
- Python PIL模块笔记
利用python pil 实现给图片上添加文字 图片中添加文字#-*- coding: utf-8 -*- from PIL import Image,ImageDraw,ImageFont ttfo ...
- 【Java】【6】JDK8 Stream操作整理
摘要: 1,List<EntityOld>转换为List<EntityNew> List<EntityOld> list = oldList; List<En ...
- python-django rest framework框架之序列化
序列化与反序列化: 对象 -> 字符串 序列化 字符串 -> 对象 反序列化 rest framework序列化+Form 目的: 解决QuerySet序列化问题 功能:解析 和 过滤 - ...
- python中lambda的用法
一.lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x):return x**2print f(4) Python中使用lambda的话,写成这样 g = l ...
- c++中利用localtime_s函数格式化输出当地日期与时间
Visual C++ 6.0开发环境中显示当地日期与时间主要通过localtime()函数来实现,该函数的原型在time.h头文件中,其语法格式如下: struct tm *localtime(xon ...
- .NET 高效开发之不可错过的实用工具(第一的当然是ReSharper插件)
工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为 ASP.NET 开发者介绍一些高效实用的工具,包括 SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节 ...
- 十二、持久层框架(MyBatis)
一.PageHelper分页插件的使用 PageHelper是一款MyBatis的分页插件,只需要简单的配置,然后直接调用方法就可以. 1.配置PageHelper插件 在mybatis-config ...
- Analytic Functions in Oracle
Contents Overview and IntroductionHow Analytic Functions WorkThe SyntaxExamplesCalculate a running T ...
- Oracle物理DG自动切换——Dataguard Broker配置
1.前言部分 1.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能: ① Data Guard Broker 的配置 ② Fast-Start Failover 的配置 ③ Oracle D ...
- python3.7 安装
python3.7 安装 下载安装 cd /usr/localwget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgztar -xvf ...