1. 程式人生 > >JAVA高階視訊_IO輸入與輸出_收穫四

JAVA高階視訊_IO輸入與輸出_收穫四



java 高階視訊教程 02——11.swf——15.swf

包裝類的概念與作用

java的資料型別有:原始資料型別跟引用資料型別;

包裝類的作用就是將原始資料型別轉換成引用資料型別
——就是將原始資料型別當作物件進行操作。

輸出包裝類順序:程式——包裝流類——節點流類——目標
輸入包裝類順序:目標——節點流類——包裝流類——程式

BufferedInputStream類與BufferedOutputStream類
緩衝流為I/O增加了記憶體緩衝區,具有兩個目的:
1、允許java程式依次不只操作一個位元組,提高的程式效能。
2、有了緩衝區,使得流在執行上skip、mark、reset方法都成為可能。

BufferedInputStream建構函式:
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in,int size)
BufferedOutputStream建構函式:
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out,int size)

BufferedReader和BufferedWrite類
BufferedReader的readLine方法依次讀取一行文字
BufferedWrite的newLine方法可以想字元流中寫入不同作業系統下的換行符(生成跟平臺相關的)

DataInputStream類與DateOutputStream類

DateOutputStream三個寫入字串方法:
pubilc final void wreitBytes(String s)
pubilc final void wreitChars(String s)
pubilc final void wreitUTF(String str)

程式——》DataOutputStream——》BufferedOutputStream——》FileOutStream——》檔案
程式《——DataInputStream《——BufferedInputStream《——FileInputStream《——檔案

關閉流棧中的最上層流物件,將會自動關閉流棧中所有底層的流物件。

PrintStream類

PrintStream類提供了一系列的print和println的方法,可以將基本資料型別的資料格式化成為字串輸出。

PrintStream的建構函式:
PrintStream(OutputStream out)
PrintStream(OutputStream out,boolean autoflush)指定是否自動重新整理緩衝區
PrintStream(OutputStream out,boolean autoflush,String encoding)指定字符集編碼

與PrintStream對應的PrintWrite類,及時遇到了文字換行表示(/n),PrintWrite類也不會自動清空緩衝區。
PrintWrite的println方法可以根據不同作業系統生成對應的文字換行識別符號。

ObjectInputStream類與ObjectOutputStream類

ObjectInputStream和ObjectOutputStream類主要用於從底層輸入流中讀取物件型別的資料和物件型別的資料寫入底層輸出流。
ObjectInputStream和ObjectOutputStream類所讀取到的物件必須實現了Serializable介面。物件彙總的transient和static型別的成員變數不會被讀取和寫入。


位元組流與字元流的轉換
InputStreamReader和OutputStreamWrite,是用於將位元組流轉換成字元流來讀寫的兩個類,InputStream可以將一個位元組流中的位元組解碼成字元後讀取,OutputStreamWrite將字元編碼成自節後寫入到一個位元組流中。

InputStreamReader兩個主要建構函式:
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String CharsetName)
OutputStreamWrite兩個主要建構函式:
OutputStreamWrite(OutputStream out)
OutputStreamWrite(OutputStream out,String CharsetName)

在實際情況中,避免頻繁的在字元與位元組之間進行轉換,最好不要直接使用。

InputStreamReader和OutputStreamWrite類來讀寫資料,應儘量使用BufferedWrite類包裝OutputStream類,用BufferedReader類包裝InputStreamReader。


Java程式與其他程序的資料通訊。

在java程式彙總可以用Process類的例項物件來表示子程序,子程序的標準輸入和輸出不在連線到鍵盤和顯示器,二十一管道流的形式連線到父程序的一個輸出流和輸入流物件上。
呼叫Process類的getOutputStream和getInputStream方法可以獲得連線到子程序的輸出流和輸入流物件。

記住呼叫Process類的destroy方法結束子程序的執行。


Decorator設計模式在IO中的應用

在程式中用一個物件包裝另外的一個物件,這是一種被稱為Decorator的設計模式。
如果設計自己的IO包裝類,這個類需要繼承以FilterXXX命名的類,例如,設計一對輸入輸出包裝類:RecordInputStream和RecordOutputStream,來完成從資料庫檔案中讀取記錄和往資料庫檔案中寫入記錄。

Exception類從Throwable類繼承的三個printStackTrace方法的定義如下:
public void printStackTrace()
public void printStackTrace(PrintStream s)
public void printStackTrace(PrintWriter s)