數(shù)據(jù)流的概念
?
?
在
Java
中,把所有的輸入和輸出都當(dāng)做流來(lái)處理。
“
流
”
是一個(gè)抽象概念,它代表任何有能力產(chǎn)出數(shù)據(jù)的數(shù)據(jù)源對(duì)象或者是有能力接收數(shù)據(jù)的接收端對(duì)象。
“
流
”
屏蔽了實(shí)際的輸入
/
輸出設(shè)備中處理數(shù)據(jù)的細(xì)節(jié)。一個(gè)程序可以打開(kāi)一個(gè)數(shù)據(jù)源上的流,然后按順序讀取這個(gè)流中的數(shù)據(jù)到程序中,這樣的流稱為輸入流,其過(guò)程如圖所示。一個(gè)程序也可以打開(kāi)一個(gè)目的地的流,然后按順序的把程序中的數(shù)據(jù)寫(xiě)入到這個(gè)目地中,這樣的流稱為輸出流
加深理解:輸入輸出是相對(duì)程序而言的。。。
?
流的分類
Java
的輸入/輸出流中,根據(jù)它們的數(shù)據(jù)類型,主要可分為兩類:字符流(Character Stream)和字節(jié)流(Btye Stream)。
?
兩種分法
1.Java
的輸入
/
輸出流中,根據(jù)它們的數(shù)據(jù)類型,主要可分為兩類:字符流
(Character Stream)
和字節(jié)流
(Btye Stream)
。
u?????
字符流
(character Stream)
字符流的輸入
/
輸出數(shù)據(jù)是字符碼,
即
Unicode
字符。字符流有兩個(gè)基本類:
Reader
類和
Writer
類。
Reader
類用于處理字符輸入流,
Writer
類用于處理字符輸出流。
它們都是抽象類,本身不能直接用來(lái)創(chuàng)建對(duì)象。提供了一些方法。
?
u?????
字節(jié)流
(Btye Stream)
?
字節(jié)流是按字節(jié)讀
/
寫(xiě)二進(jìn)制數(shù)據(jù)。
字節(jié)流有兩個(gè)基本的類:
InputStream
類和
OutputStream
類。
InputStream
類用于處理字節(jié)輸入流,
OutputStream
類用于處理字節(jié)輸出流。它們都是抽象類,本身不能直接用來(lái)創(chuàng)建對(duì)象。
InputStream
類和
OutputStream
類為其它字節(jié)輸入
/
輸出流子類提供了一些基本方法和標(biāo)準(zhǔn)接口。
?
2.按照流是否直接與特定的地方(如磁盤(pán)、內(nèi)存等)相連,分為節(jié)點(diǎn)流與處理流。
u??????
節(jié)點(diǎn)流:可以從或者向一個(gè)特定的地方(節(jié)點(diǎn))讀寫(xiě)數(shù)據(jù)。如文件流
FileReader
。
?
u??????
處理流:是對(duì)一個(gè)已經(jīng)存在的流的連接和封裝,通過(guò)所封裝的流的功能調(diào)用實(shí)現(xiàn)數(shù)據(jù)讀、寫(xiě)功能。處理流也稱過(guò)濾流,如緩沖處理流
BufferedReader
。
待續(xù)。。。。