麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

InputStream與OutputStream的比較

2019-11-14 09:26:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

記得剛學(xué)習(xí)程序流一章的時(shí)候,就是搞不清楚In和Out,不知道什么時(shí)候用in什么時(shí)候用out,所以一部分人采取死記硬背的方式

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(“infilename”))); 不管你從磁盤讀,從網(wǎng)絡(luò)讀,或者從鍵盤讀,讀到內(nèi)存,就是InputStream。 寫文件 BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(“outfilename”))); 不管你寫倒磁盤,寫到網(wǎng)絡(luò),或者寫到屏幕,都是OuputStream。

那么有什么好方法不用背就能記住呢,即使是反應(yīng)稍微慢點(diǎn),但是絕對(duì)不會(huì)錯(cuò)的方法呢?

好吧,老程序員可以關(guān)閉該頁(yè)面了!

我們所說(shuō)的流,都是針對(duì)內(nèi)存說(shuō)的,比如為什么打印到屏幕上就是System.out.PRintln();而從屏幕等待用戶輸入的卻是System.in呢?因?yàn)閷?duì)于內(nèi)存來(lái)說(shuō),把字符串打印到屏幕上是從內(nèi)存流向屏幕這個(gè)顯示器的,也就是輸出,而從屏幕等待用戶輸入呢?就是等待鍵盤將字符輸入到內(nèi)存中。

根本就不用死記硬背,當(dāng)你遇到IO的時(shí)候,就想兩件事,第一,我的內(nèi)存是中心,第二看看流的方向(矢量)!

好吧,那么往硬盤上寫文件是out還是in呢?別一看到“寫”文件你就說(shuō)in,那是望文生義,你看,寫文件的流向,是 內(nèi)存———->硬盤 內(nèi)存為中心,到硬盤,OK 用out 那么就是FileOutputStream、BufferedOutputStream 等等 那讀文件呢?是 內(nèi)存<—————硬盤 那么就是in了 , 看清楚數(shù)據(jù)的流向就OK!

那我訪問(wèn)網(wǎng)絡(luò),看網(wǎng)頁(yè)是什么呢 網(wǎng)絡(luò)—————>內(nèi)存 是in 因?yàn)槲覀冊(cè)L問(wèn)頁(yè)面是要抓取該頁(yè)面得一個(gè)html文件,那我要是在網(wǎng)絡(luò)上輸入帳號(hào)密碼登陸呢? 是不是內(nèi)存的東西要寫到該服務(wù)器上呢,所以當(dāng)然是out了!

同樣socket編程用到更多的IO,這里分別用Server(服務(wù)器端)和Client(客戶端)來(lái)說(shuō)明

Server: 遇到請(qǐng)求,網(wǎng)絡(luò)—–>內(nèi)存 IN 服務(wù)器應(yīng)答, 內(nèi)存——->網(wǎng)絡(luò) OUT

Client: 請(qǐng)求服務(wù), 內(nèi)存—–>網(wǎng)絡(luò) OUT 服務(wù)器應(yīng)答, 網(wǎng)絡(luò)——->內(nèi)存 IN

內(nèi)存的數(shù)據(jù)出去了就是out 外設(shè)的東西到內(nèi)存了就IN了

===========================================================

加點(diǎn)自己的理解,以實(shí)際的工作場(chǎng)景出發(fā),

需要讀取一個(gè)文件(并寫到內(nèi)存中)以新建一個(gè)對(duì)象,則用in

X509Certificate cert = (X509Certificate) CertificateFactory.getInstance(“X.509”) .generateCertificate(new ByteArrayInputStream(Base64.decode(CERTIFICATE))); 2. 需要輸出(產(chǎn)生)一個(gè)文件,或者打印某對(duì)象到控制臺(tái)以便debugging,就用out:

OutputStream out = new ByteArrayOutputStream(); TransformerFactory.newInstance().newTransformer().transform(returnMessage.getPayload(), new StreamResult(out)); String result = ((ByteArrayOutputStream) out).toString();


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澳门一级淫片免费视频 | 久久恋 | 亚欧美一区二区 | 久色免费 | 在线日韩亚洲 | 欧美一级黑人 | 国产区二区 | 91短视频在线视频 | 国产精品一区二区手机在线观看 | 欧美性成人 | av免费在线网站 | 精选久久 | jj视频在线播放 | 久久成年网| 精品一区二区久久久久 | www.69色 | 欧美一级淫片免费视频黄 | 亚洲网站在线播放 | 成人18网站| 精品久久999| 一区二区久久 | sesee99 | 最新中文字幕日本 | 欧美成人毛片 | av播播| 国产精品视频自拍 | caoporn国产一区二区 | 97青青草视频 | 日韩欧美精品电影 | 本站只有精品 | 亚洲一级电影在线观看 | 久久线视频 | 精品国产一区二区三区蜜殿 | 手机av在线电影 | 羞羞视频免费观看网站 | 黄网站在线播放视频免费观看 | 伊人亚洲精品 | 黄色香蕉视频 | 羞羞答答www网站进入 | 精品成人av一区二区三区 | 羞羞羞网站 |