序列流

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


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