毕向东_Java基础视频教程第20天_IO流(11~14)
第20天-11-IO流(Properties简述)
.properties是一种主要在Java相关技术中用来存储应用程序的可配置参数的文件的文件扩展名。它们也可以存储用于国际化和本地化的字符串,这种文件被称为属性资源包(Property Resource Bundles)。
第20天-12-IO流(Properties存取)
package bxd; import java.io.IOException;
import java.util.Properties;
import java.util.Set; /*
Properties是hashtable的子类, 也就是说它具备map集合的特点, 而且它里面存储的键值对都是字符串, 是集合中和IO技术相结合的集合容器.
该对象的特点: 可以用于键值对形式的配置文件
*/
public class PropertiesDemo_1 { // 以下方法没有关联文件, 都是在内存对象中进行操作
public static void setAndGet() {
Properties properties = new Properties(); // 设置Properties元素
properties.setProperty("zhangsan", "30");
properties.setProperty("lisi", "40");
System.out.println(properties); // 获取Properties值
System.out.println("getProperty(\"zhangsan\"): " + properties.getProperty("zhangsan"));
System.out.println("getProperty(\"lisi\"): " + properties.getProperty("lisi")); // 修改Properties值
properties.setProperty("lisi", "89");
Set<String> names = properties.stringPropertyNames();
for (String s : names) {
System.out.println(s + ":" + properties.getProperty(s));
}
} public static void main(String[] args) throws IOException {
setAndGet();
}
}
第20天-13-IO流(Properties存取配置文件)
package bxd; import java.io.*;
import java.util.Properties; public class PropertiesDemo_2 { // 演示: 如何将流中的数据存储到集合中, 想要将message.properties中键值数据存到集合中继续操作
// 1. 用一个输入流和文件进行关联
// 2. 读取一行数据, 将该行数据以"="作为分隔符进行切分, 结果存入字符串数组
// 3. 等号左边为键, 右边为值, 存入到Properties对象中
public static void method_1() throws IOException {
Properties properties = new Properties();
BufferedReader bufr = new BufferedReader(new FileReader("messages.properties")); String line;
while ((line = bufr.readLine()) != null) {
String[] arr = line.split("=");
properties.setProperty(arr[0], arr[1]);
}
System.out.println(properties);
} public static void loadDemo() throws IOException {
Properties properties = new Properties();
FileInputStream fis = new FileInputStream("messages.properties"); // 加载
properties.load(fis);
System.out.println(properties); // 打印, This method is useful for debugging.
properties.list(System.out);
} public static void storeDemo() throws IOException {
Properties properties = new Properties();
FileOutputStream fileOutputStream = new FileOutputStream("info.txt");
properties.setProperty("key_one", "value_one"); // 保存
properties.store(fileOutputStream, "just for test");
} public static void main(String[] args) throws IOException {
storeDemo();
}
}
第20天-14-IO流(Properties练习)
package bxd; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties; /*
键值对数据是map集合, 数据是以文件形式存储, 使用IO技术, 即map + IO --> Properties; 如果处理xml, 则常常使用dom4j.
*/
public class PropertiesDemo_3 { public static void main(String[] args) throws IOException {
Properties properties = new Properties();
File file = new File("info.txt"); if (!file.exists()) file.createNewFile();
properties.load(new FileInputStream(file)); int count = 0;
String value = properties.getProperty("time");
if (value != null) {
count = Integer.parseInt(value);
if (count >= 5) {
System.out.println("对不起, 使用次数已到!");
return;
}
}
count++; properties.setProperty("time", count + "");
properties.store(new FileOutputStream(file), " ");
}
}
毕向东_Java基础视频教程第20天_IO流(11~14)的更多相关文章
- 毕向东_Java基础视频教程第20天_IO流(7~10)
第20天-07-IO流(递归) package bxd; import java.io.File; public class FileDemo3 { // 非递归打印 public static vo ...
- 毕向东_Java基础视频教程第20天_IO流(15~17)
第20天-15-IO流(打印输出流) 打印输出流:PrintWriter与PrintStream 两者的区别:Since JDK 1.4 it's possible to specify the ch ...
- 毕向东_Java基础视频教程第20天_IO流(5~6)
第20天-05-IO流(文件列表一) static File[] listRoots() List the available filesystem roots. String[] list() Re ...
- 毕向东_Java基础视频教程第20天_IO流(1~4)
第20天-01-IO流(File概述) File类: 用来将文件或者文件夹封装成对象, 方便进行操作. File对象可以作为参数, 传递给流对象的构造函数. 流对象不能操作文件夹; 流对象不能操作文件 ...
- 毕向东_Java基础视频教程第19天_IO流(20~22)
第19天-20-IO流(改变标准输入输出设备) static void setIn(InputStream in) Reassigns the "standard" input s ...
- 毕向东_Java基础视频教程第19天_IO流(01~05)
第19天-01-IO流(BufferedWriter) 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类缓冲区要结合流才可以使用. BufferedWriter BufferedReade ...
- 毕向东_Java基础视频教程第19天_IO流(06~10)
第19天-06-IO流(装饰设计模式) 装饰设计模式: 当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么这个自定义的类称为装饰类. 装饰类通常会通过 ...
- 毕向东_Java基础视频教程第19天_IO流(11~14)
第19天-11-IO流(字节流File读写操作) import java.io.FileInputStream; import java.io.FileOutputStream; import jav ...
- 毕向东_Java基础视频教程第21天_IO流(1)
第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有 ...
随机推荐
- dp--2019南昌网络赛B-Match Stick Game
dp--2019南昌网络赛B-Match Stick Game Xiao Ming recently indulges in match stick game and he thinks he is ...
- 连接Git@OSC操作步骤
一.准备工作 软件下载 Git:地址 TortoiseGit:地址 二.安装与配置 1.Git安装 Git配置 设置客户端的用户名和email 然后,到Git@OSC 上面注册一个帐号. 这个帐号就是 ...
- php7安装并apache
1.下载php7 选择THREAD SAFE版本,如果是64位系统要下载x64的,x86的不行 2.解压到想要安装的目录 3.apache配置 1) 添加PHP模块 查找“Dynamic Shared ...
- vue下拉搜索
vue版本是1.0.21 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- 创建第一个WCF服务
创建WCF服务 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序. 2.建立完成后如下图所示: 3.删除系统生成的两个文件IService1.cs与Service1.s ...
- UVM_INFO
文件:src/ch3/section3.5/3.5.6/get/my_model.sv 21 function void my_model::build_phase(uvm_phase phase); ...
- TP2.1 加载扩展配置文件参数
维护老项目真的恶心!!!!!!!!! TP3.2好像有这样一个配置参数,可以设置有那些扩展配置文件,系统会自动加载. 方法一: 'LOAD_EXT_CONFIG' => 'user,db',// ...
- VM虚拟机安装后的网络设置
-------------------------------------------- VM的win7系统 网络设置: 1,启动前,VM中的 网络适配器:NAT 2,关闭主机和虚拟机的所有防火墙先. ...
- MyBatis中插入并返回主键
开发过程中经常遇到需要插入一条数据,并且返回这条数据自增的主键,在MyBatis中只需要在mapper中添加keyProperty属性即可 在mapper中添加keyProperty属性 <in ...
- SQL Serever学习12——数据库的备份和还原
公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...