首頁 >常見問題 >資料流分為幾類

資料流分為幾類

hzc
hzc原創
2020-06-29 16:17:489048瀏覽

資料流分為兩類:1、輸入流【InputStream】,輸入流只能讀不能寫,而輸出流只能寫不能讀。 2.輸出流【OutputStream】,通常程式中使用輸入流讀出數據,輸出流寫入數據,就好像數據流入到程式並從程式中流出。

資料流分為幾類

資料流(data stream)是一組有序,有起點和終點的位元組的資料序列。包括輸入流和輸出流。

資料流最初是通訊領域使用的概念,代表傳輸中所使用的資訊的數位編碼訊號序列。這個概念最初在1998年由Henzinger在文獻87中提出,他將資料流定義為「只能以事先規定好的順序被讀取一次的資料的一個序列」。

資料流應用的產生的發展是以下兩個因素的結果:

細節資料

已經能夠持續自動產生大量的細節資料。這類數據最早出現在傳統的銀行和股票交易領域,後來也出現為地質測量、氣象、天文觀測等面向。尤其是網路(網路流量監控,點選流)和無線通訊網(通話記錄)的出現,產生了大量的資料流類型的資料。我們注意到這類資料大都與地理資訊有一定關聯,這主要是因為地理資訊的維度較大,容易產生這類大量的細節資料。

複雜分析

需要以近實時的方式對更新流進行複雜分析。對上述領域的資料進行複雜分析(如趨勢分析,預測)以前往往是(在資料倉儲中)離線進行的,然而一些新的應用(尤其是在網路安全和國家安全領域)對時間都非常敏感,如偵測網路上的極端事件、詐欺、入侵、異常,複雜人群監控,趨勢監控(track trend),探查性分析(exploratory analyses),和諧度分析(harmonic analysis)等,都需要進行聯機的分析。

在此之後,學術界基本上認可了這個定義,有的文章也在此基礎上對定義稍微進行了修改。例如,S. Guha等[88]認為,資料流是“只能被讀取一次或少數幾次的點的有序序列”,這裡放寬了前述定義中的“一遍”限制。

為什麼在資料流的處理中,強調資料讀取次數的限制呢? S. Muthukrishnan[89]指出資料流是指“以非常高的速度到來的輸入資料”,因此對資料流資料的傳輸、計算和儲存都將變得很困難。在這種情況下,只有在資料最初到達時有機會對其進行一次處理,其他時候很難再訪問這些資料(因為沒有也無法保存這些資料)。

分類:

資料的性質、格式不同,則對流的處理方法也不同,因此,在Java的輸入/輸出類別庫中,有不同的流類別來對應不同性質的輸入/輸出流。在java. io包中,基本輸入/輸出流類別可依其讀寫資料的類型之不同分為兩種:位元組流和字元流。

輸入流與輸出流

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

輸入流可從鍵盤或檔案取得數據,輸出流可傳送資料至顯示器、印表機或檔案。

緩衝流

為了提高資料的傳輸效率,通常使用緩衝流(Buffered Stream),即為一個流配有一個緩衝區(buffer),一個緩衝區就是專門用於傳輸資料的記憶體區塊。當向一個緩衝流寫入資料時,系統不會直接傳送到外部設備,而是將資料傳送到緩衝區。緩衝區會自動記錄數據,當緩衝區滿時,系統將數據全部傳送到相應的設備。

當從一個緩衝流讀取資料時,系統實際上是從緩衝區讀取資料。當緩衝區空時,系統會從相關設備自動讀取數據,並讀取盡可能多的數據充滿緩衝區。

以上是資料流分為幾類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn