一、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的更多相关文章

  1. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  2. Java进阶(三十一) Web服务调用

    Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd5 ...

  3. “全栈2019”Java第三十一章:二维数组和多维数组详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. java的缓冲流及使用Properties集合存取数据(遍历,store,load)

    缓冲流 概述 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流原理 缓冲区是 ...

  5. Properties集合与IO流

    package com.itheima.demo07.Prop; import java.io.FileOutputStream; import java.io.FileReader; import ...

  6. Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、

    1:Scala和Java的对比: 1.1:Scala中的函数是Java中完全没有的概念.因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象,而且只 ...

  7. Python学习笔记(三):文件和集合操作

    python string与list互转 因为python的read和write方法的操作对象都是string.而操作二进制的时候会把string转换成list进行解析,解析后重新写入文件的时候,还得 ...

  8. Java——(三)Collection之Set集合、HashSet类

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.Set集合 Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中, ...

  9. Java第三十天,I/O操作

    一.基本概念 输入输出一般是相对与内存.CPU寄存器.当前进程来说的 输入:从硬盘.键盘等外部设备读取数据到内存.当前进程或CPU寄存器中 输出:利用当前进程将数据写入到硬盘.终端显示屏等外部设备中 ...

随机推荐

  1. 二、create-react-app自定义配置

    这里主要讲解添加less  和  实现Antd按需加载 首选需要执行npm run eject 暴露所有内建的配置 ,这是后面所有配置的基础,这个必须优先执行! 一.实现Antd按需加载 按需加载插件 ...

  2. 「踩坑记」Android API 判断权限申请结果的闪退问题

    这几天尝试着用Android Studio写一个小工具的时候遇到了一个动态权限申请的问题.权限的申请使用的语句为: ActivityCompat.requestPermissions(this, ne ...

  3. Bugku流量分析题目总结

    flag被盗 题目链接:https://ctf.bugku.com/files/e0b57d15b3f8e6190e72987177da1ffd/key.pcapng 解题思路: 这个题目是比较基本的 ...

  4. 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 ...

  5. springBoot mybatis mysql pagehelper layui 分页

    <!-- 加入 pagehelper 分页插件 jar包--><dependency> <groupId>com.github.pagehelper</gro ...

  6. [剑指Offer]41.和为S的两个数字 VS 和为S的连续正数序列

    [剑指Offer]41 和为S的两个数字 VS 和为S的连续正数序列 Leetcode T1 Two Sum Given an array of integers, return indices of ...

  7. hibernate连接oracle

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC           & ...

  8. [源码分析] 从实例和源码入手看 Flink 之广播 Broadcast

    [源码分析] 从实例和源码入手看 Flink 之广播 Broadcast 0x00 摘要 本文将通过源码分析和实例讲解,带领大家熟悉Flink的广播变量机制. 0x01 业务需求 1. 场景需求 对黑 ...

  9. 动态规划-LCS-Uncrossed Lines

    2020-02-11 21:14:18 问题描述: 问题求解: 本质就是LCS. public int maxUncrossedLines(int[] A, int[] B) { int len1 = ...

  10. 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:

     使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...