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. c# 使用ssh.net 上传文件

    在ssh.net 客户端实例下无法普通用户切换到su root  超级用户,原因是tty 的不支持,具体原因未查, 连接时用超级用户,问题解决 使用ssh.net  能实现远程命令,  使用其中的sf ...

  2. .net如何处理高并发socket,建立高性能健壮的socket服务

    看到一个问题,说如何保持5000-10000+的健壮的socket服务. 初学者肯定是会把每个连接都开一个线程来监听.这很浪费资源 通常只会(动态地)占用几个线程就能保持3000个长连接会话了.“为每 ...

  3. Taxi

    /* After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to cele ...

  4. linux 常用命令(三)ssh

    linux 常用命令(三)SSH 一.SSH 安装及免密登陆 (1) SSH 安装并配置 CentOS 默认已安装了 SSH client.SSH server,打开终端执行如下命令进行检验 rpm ...

  5. PHP redis 群发短信

    $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $list = M('Sms')->field('phone')-&g ...

  6. UX设计秘诀之注册表单设计,细节决定成败

    以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器. 说实话,现实生活中,又有多少人会真正喜欢填写表格?显然,并不多.因为填写表单这样的网页或App服务,并非 ...

  7. 最佳运动类APP-Keep设计与欣赏

    运动类APP是大家手机中必备的一款软件.如果说谁手机里没有任何涉及运动类APP,那只能说真的与时代脱轨了.近些年随着物质生活条件的改善,人们开始越来越重视自己的身体,所以也越来越多的人会进行身体锻炼. ...

  8. oracle 视图带参数

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

  9. 【Web】CSS实现绝对定位元素水平垂直居中

    网页中常常需用让绝对定位元素水平垂直居中,下面介绍2种方法: 一 元素宽度未知 <!DOCTYPE html> <html lang="en"> <h ...

  10. spring学习 三 框架的搭建

    1 导入jar包 spring启来最少要5个包,四个核心包和一个依赖的日志包 2 创建配置文件 在dynamic web project下的src目录下,创建一个spring的xml配置文件,名称可以 ...