序列流

                              [16]序列流

一.序列流

1.什么是序列流

  • SequenceInputStream, 可以将多个InputStream整合成一个, 然后使用SequenceInputStream读取数据时, 会从被整合的流中逐个读取.

2.使用方式

  • 整合两个输入流, SequenceInputStream(InputStream s1, InputStream s2) 

  • 整个多个输入流, SequenceInputStream(Enumeration<? extends InputStream> e) 

3.读取方式

  • 和使用其他InputStream相同, read()方法读取一个, read(byte[])可以读取一批

  • 在读到内部第一个输入流末尾时, 自动读取第二个, 以此类推, 直到读到最后一个流的末尾时, 返回-1


二.对象操作流

1.什么是对象操作流

  • ObjectOutputStream可以写出对象到流中, ObjectInputStream可以从流中读取对象.

2.使用方式

  • 如果一个对象要被写出到流中, 必须实现Serializable.

  • 使用ObjectOutputStream类中的writeObject(Object)写出对象

  • 使用ObjectInputStream类中的readObject()读取对象

3.读写多个对象

  • 通常在存储多个对象的时候, 会将多个对象装入一个集合, 然后一次性写出


* 三.打印流

1.什么是打印流

  • PrintStream, 可以调用print()和println()方法打印对象的toString()

2.使用方式

  • 创建PrintStream的时候可以指定一个文件, 或者指定一个输出流. 可以设置码表, 可以设置是否自动刷出


* 四.数组操作流

1.什么是数组操作流

  • ByteArrayOutputStream, 可以向内存中写出数据, 通常用来缓存数据.

2.使用方式

  • 创建ByteArrayOutputStream, 和普通输出流一样写出数据, 然后调用toByteArray()可以获取所有写出的数据组成的一个byte[]


五.数据操作流

1.什么是数据操作流

  • DataOutputStream, DataInputStream, 可以按照基本数据类型大小读写数据

2.使用方式

  • DataOutputStream可以使用writeInt(int)写出一个int值, 占4个字节大小.

  • DataInputStream可以使用readInt()读取4个字节, 转为一个int.


六.随机访问文件

1.什么是随机访问文件

  • RandomAccessFile, 可以对文件指定位置, 同时读写.

2.使用方式

  • RandomAccessFile(String name, String mode)  name为文件路径, mode为模式"r"是只读, "rw"是读写

  • RandomAccessFile类中定义了多个读取和写出的方法, 都可以对文件进行操作

  • 使用seek(int)方法可以指定读写的位置


七.正则表达式

1.什么是正则表达式

  • 可以理解为一种描述字符串的规则.

2.正则表达式匹配

  • 使用String类的matches(String)方法判断一个字符串是否匹配指定的正则表达式

3.正则表达式分割

  • 使用String类的split(String)方法将指定的字符串按照正则表达式匹配的分割符分割

4.正则表达式替换

  • 使用String类的replaceAll(String, String)方法将字符串中匹配正则表达式的部分替换为另一个字符串

5.正则表达式查找

  • 创建Pattern对象, 例如: Pattern p = Pattern.compile("[1][3458]\\d{9}");

  • 使用Pattern匹配String, 得到Matcher, 例如: Matcher m = p.matcher("我现在的电话是18600035350, 以前用过13920300351");

  • 查找是否包含匹配正则表达式的部分, 例如: m.find();

  • 获取正则表达式匹配的部分, 例如: m.group();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章