課程
/前端開發
/JavaScript
/JavaScript進階篇
數組方法mark
2015-02-05
源自:JavaScript進階篇 7-17
正在回答
mark(int readlimit)方法表示,標記當前位置,并保證在mark以后最多可以讀取readlimit字節數據,mark標記仍有效。如果在mark后讀取超過readlimit字節數據,mark標記就會失效,調用reset()方法會有異常。?但實際的運行情況卻和JAVA文檔中的描述并不完全相符。 有時候在BufferedInputStream類中調用mark(int readlimit)方法后,即使讀取超過readlimit字節的數據,mark標記仍有效,仍然能正確調用reset方法重置。?
事實上,mark在JAVA中的實現是和緩沖區相關的。只要緩沖區夠大,mark后讀取的數據沒有超出緩沖區的大小,mark標記就不會失效。如果不夠大,mark后又讀取了大量的數據,導致緩沖區更新,原來標記的位置自然找不到了。
因此,mark后讀取多少字節才失效,并不完全由readlimit參數確定,也和BufferedInputStream類的緩沖區大小有關。 如果BufferedInputStream類的緩沖區大小大于readlimit,在mark以后只有讀取超過緩沖區大小的數據,mark標記才會失效。
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
4 回答記錄數組方法
4 回答數組排序方法
2 回答各種數組的方法
4 回答數組for循環方法
3 回答運用數組的方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-12-21
mark(int readlimit)方法表示,標記當前位置,并保證在mark以后最多可以讀取readlimit字節數據,mark標記仍有效。如果在mark后讀取超過readlimit字節數據,mark標記就會失效,調用reset()方法會有異常。?
但實際的運行情況卻和JAVA文檔中的描述并不完全相符。 有時候在BufferedInputStream類中調用mark(int readlimit)方法后,即使讀取超過readlimit字節的數據,mark標記仍有效,仍然能正確調用reset方法重置。?
事實上,mark在JAVA中的實現是和緩沖區相關的。只要緩沖區夠大,mark后讀取的數據沒有超出緩沖區的大小,mark標記就不會失效。如果不夠大,mark后又讀取了大量的數據,導致緩沖區更新,原來標記的位置自然找不到了。
因此,mark后讀取多少字節才失效,并不完全由readlimit參數確定,也和BufferedInputStream類的緩沖區大小有關。 如果BufferedInputStream類的緩沖區大小大于readlimit,在mark以后只有讀取超過緩沖區大小的數據,mark標記才會失效。