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

  1. IO—》Properties类&序列化流与反序列化流

    Properties类 介绍:Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. Properties类特点: ...

  2. Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)

    一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...

  3. File类与常用IO流第十一章——打印流

    第十一章.打印流 概述:java.io.PrintStream extends OutputStream,为其他输出流添加了功能,使题目能够方便的打印各种数据值表示形式. 特点: 只负责数据的输出,不 ...

  4. JAVA学习第五十四课 — IO流(八)打印流 &amp; 序列流

    一.综合练习-文件清单列表 获取指定文件夹下,指定扩展名的文件(含子文件夹),并将这些文件的绝对路径写到一个文本文件里.也就是建立一个指定扩展名的文件列表 1.深度遍历 2.过滤器->容器 3. ...

  5. Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例

    1. 使用打印流改进复制文本文件的案例 2. 代码示例: package cn.itcast_03; import java.io.BufferedReader; import java.io.Buf ...

  6. Java基础知识强化之IO流笔记59:打印流

    1. 打印流 (1)分类: • 字节打印流   PrintStream • 字符打印流   PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...

  7. IO流_PrintWriter(字符打印流)与PrintStream(字节打印流)

    PrintStream:  1.提供了打印方法可以对多种数据类型值进行打印,并保持数据的表示形式  2.它不抛IOException  3.构造函数接受三种类型的值:  字符串路径  File对象   ...

  8. Java第三阶段学习(五、流的操作规律、Properties流、序列化流与反序列化流、打印流、commons-IO jar包)

    一.流的操作规律 四个明确: 明确一:明确要操作的数据是数据源还是数据目的地 源:InputStream   Reader 目的地:OutputStream Writer 先根据需求明确是要读还是写 ...

  9. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  10. Java IO(Properties/对象序列化/打印流/commons-io)

    Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载. ...

随机推荐

  1. Attribute Syntax

    Attribute Syntax This section describes the syntax with which __attribute__ may be used, and the con ...

  2. Oracle_高级功能(9) 性能优化

    1.oracle优化器 优化目标分为4种: choose (选择性) rule (基于规则) first rows(第一行) all rows(所有行) Description:描述sql的执行计划 ...

  3. JS-Date心得

    写在前面的话:我觉得JavaScript以后也要出像Java1.8新增的Date类,这个月份要是从1开始多好,强迫症很难受.......也就发发牢骚,没出来之前还得这么用..... 属性: const ...

  4. waf相关

    google上搜索下面信息: waf site:klionsec.github.io 有几篇比较有意思的问题: https://klionsec.github.io/2017/07/09/nginx- ...

  5. linux工具介绍

    http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.html 工具参考篇 1. gdb 调试利器 2. ldd 查看程序依赖库 3 ...

  6. 十年百度工作心得(月薪75k)

    百度,是多少从事IT事业的程序员梦寐以求的地方,能进入这样大厂的程序员可以说都是数一数二的人才. 最近有不少朋友问,成为百度,腾讯,阿里Java架构师需要系统学习哪些Java技术. 下面分享互联网Ja ...

  7. POJ3417 Network

    一道LCA+树上差分 原题链接 显然每一条新增边都会导致环. 如果试着举些例子的话,很容易发现割掉非环上的边,则割掉其他任意一条新增边都可达成目标:若割掉的原有边是一个环上的边,那么只有割掉导致这个环 ...

  8. Java 中转换为String类型的四种方法

    1. 使用 String 的构造方法,用于 byte[], char[], StringBuffer, StringBuilder 类型 2. 使用 String 的静态方法 valueOf() 推荐 ...

  9. where_1

    (二)WHERE //where不单独使用,与match,optional match,start,with搭配 where 与match,optional match 一起用,表示约束 where ...

  10. oracle 视图带参数

    -- create or replace package p_view_param is --参数一 function set_ID(num number) return number; functi ...