找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
發表文章前請先閱讀相關版規尊貴會員無限使用任何功能尊貴會員無限觀看附件圖片
神奇寶貝cosplay柯南3d3d中出中文
tigr 002校花無碼活動@mgphoenix bmw 280

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

【高清繁中】✡ 霹靂

(4月新番)[繁]關於我

(4月新番)[繁]魔法科

關於我轉生變成史萊姆

❖四月新番【簡】無名

[簡]被稱為廢物的原英
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4650|回復: 6

[問題] BufferedInputStream緩衝區問題[複製鏈接]

帖子
35
積分
17 點
潛水值
4980 米
發表於 2016-11-11 03:38 PM|顯示全部樓層
請問各位程式高手以下問題
串流在傳輸時,假設我建立一個類別FileInputStream,位元檔傳輸方式是以1byte單位做傳輸
那麼,我在建立一個類別BufferedInputStream緩衝區,該物件會在記憶體內建立一個緩衝區
我在書上看到一段文字"建立BufferedInputStream緩衝區可以減少IO讀取的動作,並增加讀取效率"
那麼我的問題是:
緩衝區一樣必須從硬碟讀取資料,傳輸方式是否一樣是1byte為單位,如果是為何可以減少IO讀取的動作
...
瀏覽完整內容,請先 註冊登入會員
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

Rank: 2Rank: 2

帖子
184
積分
200 點
潛水值
22279 米
發表於 2016-11-11 07:10 PM|顯示全部樓層
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
並不是說讀取的byte的單位減少
如果讀取的容量減少的話根本就違反了能量守恆定律(X)

所謂的減少IO的動作是
用到stream基本上硬體都會進行IO
而無論是Input或OutputStream是屬於即時讀取
也就是獲取到資料之後立刻寫入
所以會進行非常大量的IO的loop

Buffered就如同你說的會創造一個緩衝區
將所有的資料讀取到緩衝區之後再一次寫入
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

帖子
35
積分
17 點
潛水值
4980 米
發表於 2016-11-12 12:29 AM|顯示全部樓層
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
CrazyDavis 發表於 2016-11-11 07:10 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

並不是說讀取的byte的單位減少
如果讀取的容量減少的話根本就違反了能量守恆定律(X)

謝謝您的解析,觀念上讓我清楚很多
...
瀏覽完整內容,請先 註冊登入會員
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3222
積分
24364 點
潛水值
77110 米
發表於 2016-11-12 12:49 AM|顯示全部樓層
1006910211 發表於 2016-11-12 12:29 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

謝謝您的解析,觀念上讓我清楚很多
從硬碟取資料到緩衝區的過程,是否也是一個IO正常的Loop(次數不會變) ...

你誤會了,一般緩衝區就是在記憶體,要減少的是從儲存裝置讀入緩衝區的次數
...
瀏覽完整內容,請先 註冊登入會員
Melty Snow [雪靈]

使用道具檢舉

Rank: 1

帖子
232
積分
194 點
潛水值
6353 米
發表於 2016-11-29 07:11 PM|顯示全部樓層
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
樓上的例子很好。另外還有一點就是,IO在存取時其實是有一個前置動作或後續動作,所以減少動作,其實是在減少這些前置或後續動作。而IO本身的寫入或讀取其實是不變的。




如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

帖子
117
積分
52 點
潛水值
12223 米
發表於 2016-12-16 01:12 PM|顯示全部樓層
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
Buffered只是一次性提供大區塊的RAM空間給IO讀取進來,讀取量是不變的,但是可以減少磁頭移動的次數,如果直接用Fileinputstream每隔一秒讀1byte,會造成硬碟每一秒為了讀1byte而去讀取,
用Buffered則會預先將100Byte讀進來,
以時間來看每讀一次需100ms
Fileinputstream讀完需10秒+10秒(硬碟讀取時間100ms * 100times = 10,000ms)
Buffered讀完只需10秒+100ms(它只讀一次)
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

帖子
0
積分
2 點
潛水值
150 米
發表於 2017-2-20 08:26 PM|顯示全部樓層

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部