Java第三十一天,用Properties集合操作IO
一、Properties
这个类是线程安全的:多个线程可以共享一个Properties对象,而不需要外部同步
1.常用方法
Object setProperty(String key, String value) ===> 存储数据
String getProperty(String key) ===> 读取数据
void load(InputStream inStream) ===> 从输入字节流读取属性列表(键和元素对)
void load(Reader reader) ===> 以简单的线性格式从输入字符流读取属性列表(关键字和元素对)
void store(OutputStream out, String comments) ===> 将此属性列表(键和元素对)写入此 Properties表中,comments不能是中文
void store(Writer writer, String comments) ===> 将此属性列表(键和元素对)写入此 Properties表中
Set<String> stringPropertyNames() ===> 返回所有键的集合
2.具体使用
import java.io.*;
import java.util.Properties;
import java.util.Set;
public class FileList {
public static void main(String[] args) throws IOException {
Properties list = new Properties();
list.setProperty("端游","英雄联盟");
list.setProperty("手游","王者荣耀");
Set<String> keys = list.stringPropertyNames();
for (String key : keys) {
System.out.println(key + " ===> " + list.getProperty(key));
}
FileOutputStream file = new FileOutputStream("F:\\data.txt");
list.store(file,"lanYue");
file.close();
FileWriter writer = new FileWriter("F:\\info.txt");
list.store(writer,"HuHai");
writer.close();
Properties listTemp = new Properties();
FileReader reader = new FileReader("F:\\info.txt");
listTemp.load(reader);
Set<String> keysTemp = listTemp.stringPropertyNames();
for (String key : keysTemp) {
System.out.println(key + "=" + listTemp.getProperty(key));
}
reader.close();
Properties listTempTwo = new Properties();
FileInputStream fileInput = new FileInputStream("F:\\info.txt");
listTempTwo.load(fileInput);
Set<String> keysFileInput = listTempTwo.stringPropertyNames();
for (String key : keysFileInput) {
System.out.println(key + " == " + new String(listTempTwo.getProperty(key)));
}
fileInput.close();
//Properties一般配合字符流来使用,因为字节流读取中文时会出现问题
}
}
Java第三十一天,用Properties集合操作IO的更多相关文章
- 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类
---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...
- Java进阶(三十一) Web服务调用
Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd5 ...
- “全栈2019”Java第三十一章:二维数组和多维数组详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- java的缓冲流及使用Properties集合存取数据(遍历,store,load)
缓冲流 概述 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流原理 缓冲区是 ...
- Properties集合与IO流
package com.itheima.demo07.Prop; import java.io.FileOutputStream; import java.io.FileReader; import ...
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
1:Scala和Java的对比: 1.1:Scala中的函数是Java中完全没有的概念.因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象,而且只 ...
- Python学习笔记(三):文件和集合操作
python string与list互转 因为python的read和write方法的操作对象都是string.而操作二进制的时候会把string转换成list进行解析,解析后重新写入文件的时候,还得 ...
- Java——(三)Collection之Set集合、HashSet类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.Set集合 Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中, ...
- Java第三十天,I/O操作
一.基本概念 输入输出一般是相对与内存.CPU寄存器.当前进程来说的 输入:从硬盘.键盘等外部设备读取数据到内存.当前进程或CPU寄存器中 输出:利用当前进程将数据写入到硬盘.终端显示屏等外部设备中 ...
随机推荐
- 二、create-react-app自定义配置
这里主要讲解添加less 和 实现Antd按需加载 首选需要执行npm run eject 暴露所有内建的配置 ,这是后面所有配置的基础,这个必须优先执行! 一.实现Antd按需加载 按需加载插件 ...
- 「踩坑记」Android API 判断权限申请结果的闪退问题
这几天尝试着用Android Studio写一个小工具的时候遇到了一个动态权限申请的问题.权限的申请使用的语句为: ActivityCompat.requestPermissions(this, ne ...
- Bugku流量分析题目总结
flag被盗 题目链接:https://ctf.bugku.com/files/e0b57d15b3f8e6190e72987177da1ffd/key.pcapng 解题思路: 这个题目是比较基本的 ...
- org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout 和 RocketmqRemoting closeChannel: close the connection to remote address[] result: true
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout ...
- springBoot mybatis mysql pagehelper layui 分页
<!-- 加入 pagehelper 分页插件 jar包--><dependency> <groupId>com.github.pagehelper</gro ...
- [剑指Offer]41.和为S的两个数字 VS 和为S的连续正数序列
[剑指Offer]41 和为S的两个数字 VS 和为S的连续正数序列 Leetcode T1 Two Sum Given an array of integers, return indices of ...
- hibernate连接oracle
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC & ...
- [源码分析] 从实例和源码入手看 Flink 之广播 Broadcast
[源码分析] 从实例和源码入手看 Flink 之广播 Broadcast 0x00 摘要 本文将通过源码分析和实例讲解,带领大家熟悉Flink的广播变量机制. 0x01 业务需求 1. 场景需求 对黑 ...
- 动态规划-LCS-Uncrossed Lines
2020-02-11 21:14:18 问题描述: 问题求解: 本质就是LCS. public int maxUncrossedLines(int[] A, int[] B) { int len1 = ...
- 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:
使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...