什么是IO?

什么是IO:

IO(Input/Out)是將進(jìn)程的內(nèi)部數(shù)據(jù)遷移到外部即輸出,或?qū)⑼獠繑?shù)據(jù)遷移到進(jìn)程內(nèi)部即輸入。

例如:

Input:磁盤數(shù)據(jù)-->內(nèi)存,鍵盤輸入-->內(nèi)存中

Output:內(nèi)存數(shù)據(jù)-->磁盤,內(nèi)存-->網(wǎng)卡

數(shù)據(jù)的IO通常由CPU來完成,但CPU的運(yùn)行速度遠(yuǎn)遠(yuǎn)高于磁盤等設(shè)備,所以在IO編程中,就存在速度嚴(yán)重不匹配的問題。

什么是IO流?

流(steam),通常指液體的移動(dòng)(從一個(gè)地方到另一個(gè)地方),因此編程中的“流”也需要具備4個(gè)要素:

  1. 源頭(source):流的起始點(diǎn),可以是內(nèi)存,磁盤,網(wǎng)卡,鍵盤等設(shè)備;
  2. 目標(biāo)(target):流的終止點(diǎn),可以是內(nèi)存,磁盤,網(wǎng)卡,打印機(jī)等設(shè)備;
  3. 通道(channel):流的運(yùn)輸載體,在編程中通常對(duì)應(yīng)相應(yīng)的類;
  4. 液體(fluid):在源頭與目標(biāo)中流動(dòng)的“液體”,我們稱為字節(jié)(byte),字節(jié)流是IO流中最基本的存在,其他流(如字符流)都是在其基礎(chǔ)上通過特定的解碼規(guī)則來實(shí)現(xiàn)的;
JAVA中的IO流:
  1. 源頭類:可以是File類,Socket類;
  2. 目標(biāo)類:內(nèi)存中字節(jié)數(shù)組,byte[] buf;
  3. 通道類:各種InputStrem,OutputStream及其子類;
  4. 液體:File,Socket類中對(duì)應(yīng)的二進(jìn)制byte數(shù)據(jù);
示例

通過下面一段代碼,我們就可以將源頭(File類)的數(shù)據(jù),讀入到內(nèi)存(byte數(shù)組)中;

File file = new File("F:[\\myPhoto.jpg]"); //定義源頭為磁盤中的文件

byte[] buf = new byte[1024]; //定義目標(biāo)為內(nèi)存中的一段地址

FileInputStream fileInputStream = new FileInputStream(file);//定義管道

fileInputStream.read(buf));//將源頭中的字節(jié)讀入到目標(biāo)內(nèi)存中
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • IO編程 IO在計(jì)算機(jī)中指Input/Output,也就是輸入和輸出。由于程序和運(yùn)行時(shí)數(shù)據(jù)是在內(nèi)存中駐留,由CPU...
    php新手小白閱讀 11,040評(píng)論 3 20
  • 今天談?wù)劻?,什么是IO流? 流是磁盤或其它外圍設(shè)備中存儲(chǔ)的數(shù)據(jù)的源點(diǎn)或終點(diǎn)。這是在《C程序設(shè)計(jì)語言》上的原話。流主...
    張飛online閱讀 1,021評(píng)論 1 2
  • IO成本就是尋址時(shí)間和上下文切換所需要的時(shí)間,最主要是用戶態(tài)和內(nèi)核態(tài)的上下文切換。 尋址時(shí)間磁頭從啟動(dòng)位置到達(dá)所要...
    等你足夠強(qiáng)了再說吧閱讀 1,455評(píng)論 0 1
  • 參考 https://www.cnblogs.com/hapjin/p/5736188.html https://...
    jection閱讀 4,212評(píng)論 3 32
  • 通常的IO操作,只要不是操作系統(tǒng)內(nèi)存的數(shù)據(jù),基本都是IO操作,常見的IO操作,一般都是 操作磁盤、網(wǎng)卡這些(串口這...
    軒居晨風(fēng)閱讀 813評(píng)論 0 1

友情鏈接更多精彩內(nèi)容