在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 有沒(méi)有方法讓 java.io.FileInputStream.read(byte

有沒(méi)有方法讓 java.io.FileInputStream.read(byte[] b)讀完了之后再把字節(jié)放回去?

就是一般FileInputStream.read(byte[] b)方法每運(yùn)行一次,都會(huì)往后讀b.length個(gè)字節(jié)么,下次運(yùn)行該方法時(shí)會(huì)接著上次的地方往下讀,不會(huì)再在從頭開(kāi)始讀。我有沒(méi)有什么辦法讓他下一次還是從文件頭部開(kāi)始讀?

回答
編輯回答
厭遇

MappedByteBuffer

2017年3月11日 23:00
編輯回答
傲嬌范

可以使用RandomAccessFile

2017年2月28日 00:28
編輯回答
咕嚕嚕

我也遇到過(guò)類(lèi)似的需求,比較簡(jiǎn)單的方案是先把所有數(shù)據(jù)讀到一個(gè)字節(jié)數(shù)組里,然后就可以用ByteArrayInputStream來(lái)操作數(shù)據(jù)了。
如果數(shù)據(jù)非常大,內(nèi)存比較緊缺的話,可以先把部分字節(jié)讀到字節(jié)數(shù)組里,做完運(yùn)算之后,把這部分?jǐn)?shù)據(jù)放到ByteArrayInputStream中,然后和原來(lái)沒(méi)讀完的流組合成一個(gè)SequenceInputStream,然后就可以重新從頭讀起了。

2017年6月30日 06:29
編輯回答
氕氘氚

找個(gè)支持mark / reset的InputStream, 比如 BufferedInputStream

2017年8月28日 04:48
編輯回答
別逞強(qiáng)

這樣的邏輯最好不要依賴(lài)于 InputStream,應(yīng)該重新組織一下。比如說(shuō)為什么要重新讀???如果要重新讀取,上次讀取的時(shí)候可不可以緩存起來(lái)?

2018年8月7日 18:50