久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 小白福音!Java中各種IO流的梳理總結(jié)

小白福音!Java中各種IO流的梳理總結(jié)

來源:千鋒教育
發(fā)布人:yyy
時間: 2023-06-29 10:44:00 1688006640

  一. 概述

  什么是IO流?顧名思義,I表示input,O表示output,也就是輸入輸出流,主要是在程序與文件之間,用于傳輸數(shù)據(jù)的通道。既然要傳輸數(shù)據(jù),那么我們需要理解文件和程序之間哪種方向的傳輸是輸入流,哪種傳輸作為輸出流?接下來平哥給大家舉一個生活中IO流的案例,如下圖所示:

  流的流入流出,是以家庭用水為標(biāo)準(zhǔn),從水庫到家庭用水是流入,從家庭用水到下水道是流出。同樣的,程序中的IO流,則是以程序代碼為標(biāo)準(zhǔn),程序?qū)懗鰯?shù)據(jù)到文件是輸出流,程序讀取文件數(shù)據(jù)是輸入流。

Java中各種IO流的梳理總結(jié)

  二. IO流的劃分

  Java中的IO流有多種分類,一般有如下幾種。

  按方向劃分:輸入流和輸出流

  輸入流:從文件中讀取數(shù)據(jù)到程序;輸出流:從程序中寫出數(shù)據(jù)到文件。

  按單位劃分:字節(jié)流和字符流

  字節(jié)流:按一個字節(jié)一個字節(jié)讀寫,讀寫速度慢,可以讀寫所有文件,包括文本文件和二進制文件(圖片、音頻、視頻);字符流:按一個字符一個字符(一個字符=二個字節(jié))讀寫,讀寫速度快,只能讀寫文本文件。

  按功能劃分:節(jié)點流和處理流

  節(jié)點流:沒有經(jīng)過包裝的基礎(chǔ)流;處理流:經(jīng)過包裝后,生成更為強大的流。

  三. 流的分類

  IO流有很多種,很多小白初學(xué)時都記不住這些流。其實我們只要按照規(guī)則來記,還是很容易記住的。我們可以按照后綴來記就可以了,例如,我們所學(xué)習(xí)的IO流,主要有字節(jié)流和字符流,字節(jié)流主要以綴Stream結(jié)尾,字節(jié)流主要以Reader和Writer結(jié)尾,如下所示:

  字節(jié)流

  字節(jié)流的抽象父類:Inputstream/OutputStream字節(jié)節(jié)點流:FileInputStream/FileOutputStream字節(jié)緩沖流:BufferedInputStream/BufferedOutputStream對象流:ObjectInputStream/ObjectOutputStream

  字符流

  字符流的抽象父類:Reader/Writer字符節(jié)點流:FileReader/FileWriter字符緩沖流:BufferedReader/BufferedWriter字符轉(zhuǎn)換流:InputStreamReader/OutputStreamWriter

  四. 流的應(yīng)用場景

  在項目中,經(jīng)常會有IO流的應(yīng)用場景,我們經(jīng)常用到的聊天通訊軟件,上傳和下載各種圖片、音樂、視頻等都離不開IO流。當(dāng)然,不同的場景需要應(yīng)用不同的IO流,平哥給大家整理了不同流的應(yīng)用場景。

Java中各種IO流的梳理總結(jié)

  字節(jié)流

  字節(jié)節(jié)點流:主要用于讀寫輕量級數(shù)據(jù),例如做一些簡單的圖片拷貝操作。字節(jié)緩沖流:帶緩沖區(qū)的字節(jié)流,是對字節(jié)節(jié)點流的性能優(yōu)化,當(dāng)需要讀寫大批量的數(shù)據(jù)時可選擇字節(jié)緩沖流,例如拷貝視頻文件。對象流:用于讀寫實體對象數(shù)據(jù)到文件,且以序列化(文件中看不到數(shù)據(jù)內(nèi)容)方式進行讀寫提升數(shù)據(jù)的安全性。

  字符流

  字符節(jié)點流:用于讀寫輕量級的文本文件,讀寫數(shù)據(jù)的功能實現(xiàn)都是靠繼承而來,俗稱富二代流。字符緩沖流:帶緩沖的字符流,與字節(jié)緩沖流類似,其性能比字節(jié)緩沖流更高,但只能讀寫文本文件。字符轉(zhuǎn)換流:可以將字節(jié)流轉(zhuǎn)換為字符流,可以用在對于字節(jié)流的優(yōu)化上,例如socket編程中,將字節(jié)流的數(shù)據(jù)傳輸轉(zhuǎn)字符流來提升性能。

tags: javaIO流
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是雙機熱備?

一、雙機熱備的原理雙機熱備是指在系統(tǒng)中配置兩臺服務(wù)器(主服務(wù)器和備份服務(wù)器),兩者通過高速網(wǎng)絡(luò)連接進行實時數(shù)據(jù)同步和狀態(tài)同步。主服務(wù)器...詳情>>

2023-10-15 06:37:02
偏最小二乘支持向量機和支持向量機回歸的區(qū)別是什么?

1.模型構(gòu)建的理論基礎(chǔ)不同支持向量機回歸(SVR)基于統(tǒng)計學(xué)習(xí)理論,其主要思想是找到一個超平面,使得大部分?jǐn)?shù)據(jù)點都在這個超平面的一定范圍內(nèi),...詳情>>

2023-10-15 06:30:45
VAE、GAN和transformer有什么區(qū)別?

1.模型結(jié)構(gòu)不同VAE(變分自編碼器)是一種生成模型,其基于概率圖模型和自編碼器,能夠?qū)W習(xí)數(shù)據(jù)的潛在分布。GAN(生成對抗網(wǎng)絡(luò))同樣是一種生成...詳情>>

2023-10-15 06:10:12
什么是PLC?

一、什么是PLCPLC,全稱為 Programmable Logic Controller,中文名為可編程邏輯控制器。它是一種專為實現(xiàn)工業(yè)過程、生產(chǎn)線、機械裝置或某些其他...詳情>>

2023-10-15 05:26:08
為什么LTD獨立站就是Web3.0網(wǎng)站?

一、LTD獨立站的概念 LTD獨立站是指使用特定拔尖域名(如.com、.net、.org等)建立的獨立網(wǎng)站。LTD獨立站通常會有自己的服務(wù)器資源,可以自由地...詳情>>

2023-10-15 05:21:46