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的方法几乎一致,会一种即可全会 基本数据类型包装类的特点:用于在基本数据类型和字符串之间进 ...
随机推荐
- 函数使用十二:BAPI_MATERIAL_BOM_GROUP_CREATE(CS61)
REPORT ZSM_CREATE_SIMPLEBOM.* This code will create a material BoM for the material* MAINMATERIAL wi ...
- udp用户数据报协议
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层 ...
- 1.两数之和(Two Sum) C++
暴力法可解决,速度很慢. 解决办法:哈希表 知识点: map的构造 遍历map使用迭代器,判断条件 插入 pair<int,int> 寻找key是否存在 class Solution { ...
- ubuntu14静态ip配置
0.配置ip需要掌握的一些基本指令 打开/创建文件 sudo vim ... 插入信息 i 保存并强制退出 先按Esc,再键入:wq!,回车 1.使用命令 sudo vi ...
- 二十三、Spring框架的相关知识点总结
1.Spring的优点: 1.1.Spring在大小和透明性方面是轻量级的,Spring框架大约只有2MB大小. 1.2.控制反转(IOC):使用控制反转技术实现了低耦合,依赖注入(DI)到对象,而不 ...
- MySQL的SQL语句
一. MySQL概念 程序 =数据+指令构成,如果下载1个程序需要连带该程序所有代码+数据下载到本地,那这个程序运行起来势必造成本机内存压力暴涨,所以我们需要1个在远程server端帮我们管理数据的软 ...
- leetcode Kth Largest Element in a Stream——要熟悉heapq使用
703. Kth Largest Element in a Stream Easy Design a class to find the kth largest element in a stream ...
- mac Nginx+CI出现404错误
主要是ci框架需要配置rewrite nginx.conf配置文件添加: location /wechat/ { if (!-e $request_filename) { rewrite ^/wech ...
- python2x 与 python3x 区别
python2.x 与 python3.x 的区别: 1. python2.x 的源码编码不规范,源码重复较多:python3.x 的源码编码规范,清晰.优美.简单 2. python2.x的默认字符 ...
- bzoj1717
题解: 二分答案 然后hash 代码: #include<bits/stdc++.h> using namespace std; ,P2=,P=; int a1[P],num[P],a2[ ...