[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();