Properties类、序列化流与反序列化流、打印流、commons-IO
Properties类
特点:
1、Hashtable的子类,map集合中的方法都可以用;
2、该集合没有泛型,键值都是字符串;
3、是一个可以持久化的属性集,键值可以存到集合中,也可存到持久化的设备上,键值的来源也可是持久化的设备;
4、有和流技术相结合的方法:

代码演示:
public static void main(String[] args) {
Properties pro=new Properties();
//存数据
pro.setProperty("driver", "com.mysql.jdbc.driver");
pro.setProperty("username", "root");
pro.setProperty("password", "123456");
//取数据
//获取键集
Set<String> set= pro.stringPropertyNames();
for(String s:set){
System.out.println(s+"..."+pro.getProperty(s));
}
}
public class Demo02 {
public static void main(String[] args) throws IOException {
//从properties文件中读取键值对
Properties pro=new Properties();
FileInputStream fis=new FileInputStream("x:\\test\\demo1.properties");
pro.load(fis);
fis.close();
Set<String> set=pro.stringPropertyNames();
//遍历
for(String s:set){
System.out.println(s+"..."+pro.getProperty(s));
}
}
public static void main(String[] args) throws IOException {
//通过properties向文件中写键值对
//明确目的地
FileOutputStream fos=new FileOutputStream("x:\\test\\demo2.properties");
Properties pro=new Properties();
pro.setProperty("name", "xuezhiqian");
pro.setProperty("age", "34");
pro.store(fos, "");
}
序列化流与反序列化流:
读取对象的操作流ObjectInputStream:反序列化流
写入对象的操作流ObjectOutputStream:序列化流
特点:用于操作对象,可将对象写入到文件中,也可从文件中读取对象


代码演示:
//序列化
public class Demo01 {
public static void main(String[] args) throws IOException {
Person p=new Person("张三",18);
//明确目的地
FileOutputStream fos=new FileOutputStream("x:\\test\\person.txt");
//创建序列化流
ObjectOutputStream oos=new ObjectOutputStream(fos);
//写入对象
oos.writeObject(p);
//释放资源
oos.close();
} 瞬态关键字 transient
public class Person implements Serializable{
private String name;
private transient int age;//瞬态关键字
private static final long serialVersionUID=123456789L;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}


//反序列化
public class Demo02 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
//明确数据源
FileInputStream fis=new FileInputStream("x:\\test\\person.txt");
//创建反序列化对象
ObjectInputStream ois=new ObjectInputStream(fis);
//反序列化
Object obj=ois.readObject();
Person p=(Person)obj;
System.out.println(p); }
打印流:(怎么写的怎么打印;不会有IOExecption异常)
字节打印流:PrintStream;
字符打印流:PrintWriter;
方法:void print(String str):输出任意类型的数据
void println(String str):输出任意类型的数据,自动写入换行操作
代码演示:
public static void main(String[] args) throws IOException {
//打印流复制
//明确数据源
FileReader fr=new FileReader("x:\\test\\test.txt");
BufferedReader br=new BufferedReader(fr);
//明确数据目的
FileWriter fw=new FileWriter("x:\\test\\d\\pig.txt");
PrintWriter pw=new PrintWriter(fw,true);
//复制
String line=null;
while((line=br.readLine())!=null){
pw.println(line);
}
//释放资源
br.close();
pw.close();
}
commons-IO:
导入jar包
FilenameUtils:用来处理文件
常用方法:
getExtension(String path):获取文件的扩展名
getName():获取文件名
isExtension(String filename,String ext):判断filename是否是ext后缀名
FileUtils:
常用方法:
readFileToString(File file):读取文件内容,返回一个String
writeString(File file,String content):将内容写到field中
copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
copyFile(File srcFile,File destFile);文件复制
代码演示:
public class Demo01 {
public static void main(String[] args) throws IOException {
//method1();
method2();
}
public static void method1(){
//获取某文件扩展名
String name=FilenameUtils.getExtension("x:\\test");
System.out.println(name);
//获取某文件名
String filename=FilenameUtils.getName("x:\\test\\test.txt");
System.out.println(filename);
//判断某文件是否以什么为结尾
boolean flag=FilenameUtils.isExtension("aaa.java", "java");
System.out.println(flag);
}
public static void method2() throws IOException{
FileUtils.copyDirectoryToDirectory(new File("x:\\test"), new File("c:\\"));
}
}
Properties类、序列化流与反序列化流、打印流、commons-IO的更多相关文章
- IO—》Properties类&序列化流与反序列化流
Properties类 介绍:Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. Properties类特点: ...
- Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...
- File类与常用IO流第十一章——打印流
第十一章.打印流 概述:java.io.PrintStream extends OutputStream,为其他输出流添加了功能,使题目能够方便的打印各种数据值表示形式. 特点: 只负责数据的输出,不 ...
- JAVA学习第五十四课 — IO流(八)打印流 & 序列流
一.综合练习-文件清单列表 获取指定文件夹下,指定扩展名的文件(含子文件夹),并将这些文件的绝对路径写到一个文本文件里.也就是建立一个指定扩展名的文件列表 1.深度遍历 2.过滤器->容器 3. ...
- Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例
1. 使用打印流改进复制文本文件的案例 2. 代码示例: package cn.itcast_03; import java.io.BufferedReader; import java.io.Buf ...
- Java基础知识强化之IO流笔记59:打印流
1. 打印流 (1)分类: • 字节打印流 PrintStream • 字符打印流 PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...
- IO流_PrintWriter(字符打印流)与PrintStream(字节打印流)
PrintStream: 1.提供了打印方法可以对多种数据类型值进行打印,并保持数据的表示形式 2.它不抛IOException 3.构造函数接受三种类型的值: 字符串路径 File对象 ...
- Java第三阶段学习(五、流的操作规律、Properties流、序列化流与反序列化流、打印流、commons-IO jar包)
一.流的操作规律 四个明确: 明确一:明确要操作的数据是数据源还是数据目的地 源:InputStream Reader 目的地:OutputStream Writer 先根据需求明确是要读还是写 ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
- Java IO(Properties/对象序列化/打印流/commons-io)
Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载. ...
随机推荐
- H5笔记周记
9.4 一.介绍浏览器 1.title 主题,题目 2.url 网址 3.body 网站的内容 4.html 语言,超文本标记语言 二.文件介绍 三.标签的结构 (一些快捷键:Ctrl+s 保存 ...
- Java并发集合(二)-ConcurrentSkipListMap分析和使用
一.ConcurrentSkipListMap介绍 ConcurrentSkipListMap是线程安全的有序的哈希表,适用于高并发的场景.ConcurrentSkipListMap和TreeMap, ...
- js filter关键字
filter filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素. 和map()类似,Array的filter()也接收一个函数.和map()不同的是,filter ...
- (转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径
问题: Silverlight项目中添加服务引用后会在Silverlight项目中生成一个ServiceReferences.ClientConfig文件,这个文件中包含了引用服务的绑定(bindin ...
- 看懂 Fiddler 的瀑布图
最近准备给组内的新同学们分享下 Fiddler 这枚神器,可以讲的地方太多,我打算把一节课讲不完的内容写在博客上,大家可以随便看看.今天先介绍下 Fiddler 的瀑布图. 每个网络请求都会经历域名解 ...
- Lazarus IOCP 移植
delphi下面有一个高性能IOCP库,是俄国人写的,在下将其移植到了lazarus下面, lazarus 版本 1.0.12 ,需要的下载 和indy相比较,indy开发的一个web服务器,cpu占 ...
- kdump 调试手段
kdump是在系统崩溃的时候用来转储内存运行参数的一个工具和服务,打个比方,如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核 ...
- [ES]elasticsearch章2 ES查询过程解析
es服务端是准确知道每个document分布在哪个shard上: search一个比较复杂的执行模式,因为我们不知道那些document会被匹配到,任何一个shard上都有可能,所以一个search请 ...
- oracle 提示没有监听
# listener.ora Network Configuration File: E:\Oracle10g\network\admin\listener.ora # Generated by Or ...
- JDK8集合类源码解析 - LinkedList
linkedList主要要注意以下几点: 1构造器 2 添加add(E e) 3 获取get(int index) 4 删除 remove(E e),remove(int index) 5 判断对象 ...