登錄

數據流

百科 > 互聯網 > 數據流

1.什么是數據流[1]

數據流是指一組有順序的、有起點和終點的字節(jié)集合,程序從鍵盤接收數據或向文件中寫數據,以及在網絡連接上進行數據的讀寫操作,都可以使用數據流來完成。數據流的概念如圖1所示。
Image:數據流概念.jpg

2.數據流的分類[2]

數據的性質、格式不同,則對流的處理方法也不同,因此,在Java的輸入/輸出類庫中,有不同的流類來對應不同性質的輸入/輸出流。在java.io包中,基本輸入/輸出流類可按其讀寫數據的類型之不同分為兩種:字節(jié)流和字符流。

(1)輸入流與輸出流

數據流分為輸入流(InputStream)和輸出流(OutputStream)兩類。輸入流只能讀不能寫,而輸出流只能寫不能讀。通常程序中使用輸入流讀出數據,輸出流寫入數據,就好像數據流入到程序并從程序中流出。采用數據流使程序的輸入輸出操作獨立與相關設備。

輸入流可從鍵盤或文件中獲得數據,輸出流可向顯示器、打印機或文件中傳輸數據。

(2)緩沖流

為了提高數據的傳輸效率,通常使用緩沖流(Buffered Stream),即為一個流配有一個緩沖區(qū)(buffer),一個緩沖區(qū)就是專門用于傳輸數據的內存塊。當向一個緩沖流寫入數據時,系統(tǒng)不直接發(fā)送到外部設備,而是將數據發(fā)送到緩沖區(qū)。緩沖區(qū)自動記錄數據,當緩沖區(qū)滿時,系統(tǒng)將數據全部發(fā)送到相應的設備。

當從一個緩沖流中讀取數據時,系統(tǒng)實際是從緩沖區(qū)中讀取數據。當緩沖區(qū)空時,系統(tǒng)就會從相關設備自動讀取數據,并讀取盡可能多的數據充滿緩沖區(qū)。

3.數據流的基本操作[3]

1.生成數據流的基本過程

數據流由一系列的節(jié)點組成,當數據通過每個節(jié)點時,節(jié)點對它進行定義好的操作。建立數據流通常遵循以下4個步驟:

(1)向數據流區(qū)域增添新的節(jié)點;

(2)將這些節(jié)點連接到數據流中;

(3)設定數據節(jié)點或數據流的功能:

(4)運行數據流。

2.向數據流區(qū)域添加,刪除節(jié)點

當向數據流區(qū)域添加新的節(jié)點時,通過下面3種方法均可實現:

(1)雙擊選項板區(qū)中待添加的節(jié)點。

(2)單擊待添加節(jié)點,按住鼠標不放,將其拖入數據流區(qū)域內。

(3)先選中選項板區(qū)中待添加的節(jié)點,然后將鼠標放入數據流區(qū)域,在鼠標變?yōu)槭中螘r單擊數據流區(qū)域的任何空白處。

通過上面3種方法都將發(fā)現選中的節(jié)點出現在了數據流區(qū)域內。當不再需要數據流區(qū)域內的某個節(jié)點時,可以通過以下兩種方法來刪除:

(1)單擊待刪除的節(jié)點,按Delete鍵刪除。

(2)右擊待刪除的節(jié)點,在快捷菜單中選擇delete命令。

注意,刪除一個節(jié)點后,與之相連的所有連接也將一并被刪除。

3.將節(jié)點連接到數據流中

上面介紹了將節(jié)點添加到數據流區(qū)域的方法,然而要使節(jié)點真正發(fā)揮作用,需要把節(jié)點連接到數據流中。以下有3種方法可將節(jié)點連接到數據流中:

(1)雙擊節(jié)點。首先選中數據流中要連接新節(jié)點的節(jié)點(起始節(jié)點),然后雙擊選項板區(qū)中要添加到數據流的節(jié)點(目標節(jié)點),這樣新節(jié)點會出現在數據流區(qū)域,并自動建立從起始節(jié)點到目標節(jié)點的連接。

(2)通過Alt鍵連接。首先在數據流中選中連接起始節(jié)點,按住Alt鍵不放,然后用鼠標將起始節(jié)點拖曳到目標節(jié)點后放開,連接便自動生成。

(3)手動連接。右擊待連接的起始節(jié)點,從彈出的快捷菜單中選擇“連接…”命令,然后用鼠標單擊目標節(jié)點,連接便自動生成。

需要注意的是,并不是任何兩個節(jié)點之間都可以建立連接。

4.繞過數據流中的節(jié)點

當暫時不需要數據流中的某個節(jié)點時可以繞過該節(jié)點。在繞過它時,如果該節(jié)點既有輸入節(jié)點又有輸出節(jié)點,那么它的輸入節(jié)點和輸出節(jié)點便直接相連;如果該節(jié)點沒有輸出結點,那么繞過該節(jié)點時與這個節(jié)點相連的所有連接便被取消。

方法:按住Alt鍵不放,然后雙擊數據流中需要繞過的節(jié)點,如圖2所示。

Image:繞過節(jié)點前后對比.jpg

5.將節(jié)點插入已存在的連接中

當需要在兩個已連接的節(jié)點中再插入一個節(jié)點時,可以用鼠標將連接拖到要插入的節(jié)點上,即可將節(jié)點插入到連接中,如圖3所示。同時原來兩個節(jié)點間的連接被刪除。
Image:在連接中插入新節(jié)點.jpg

6.刪除連接

當某個連接不再需要時,可以通過以下兩種方法將其刪除:

(1)選擇待刪除的連接,右擊,從彈出的快捷菜單中選擇“刪除連接”命令。

(2)選擇待刪除連接的節(jié)點,按F3鍵,刪除所有連接到該節(jié)點上的連接。

7.數據流的執(zhí)行

數據流構建好后要通過執(zhí)行數據流數據才能從讀入開始流向各個數據節(jié)點。執(zhí)行數據流的方法有以下3種。

(1)單擊菜單欄中的?按鈕,數據流區(qū)域內的所有數據流將被執(zhí)行。

(2)先選擇要輸出的數據流,再單擊菜單欄中的?按鈕,被選的數據流將被執(zhí)行。

(3)選擇要執(zhí)行的數據流中的輸出節(jié)點,右擊,在彈出的快捷菜單中選擇“執(zhí)行”命令,執(zhí)行被選中的節(jié)點。

4.數據流描述方式[4]

一般使用持續(xù)賦值語句描述數據流程的運動路徑、運動方向和運動結果的設計方法,稱為數據流描述方法。

【例】module NAND2_G(A,B,F); //模塊聲明及輸入輸出端口列表

input A,B; //定義輸入端口

output F; //定義輸出端口

assign F=~(A&B); //數據流描述

endmodule //模塊結束

對于表達式assign F=~(A&B);右邊的操作數A、B無論何時發(fā)生變化,都會引起表達式值的重新計算,并將重新計算后的值賦予左邊的網線變量F。

評論  |   0條評論