FileInputStream怎么再次读取?

mcck_hyj
  • 207

我在做文件上传功能,文件上传后,对文件MD5编码得到字符串后作为文件名,保存到硬盘,在调用MD5编码方法的时候,需要读取文件,这导致了调用保存文件时方法时,文件已经读取到末尾,不能再读取数据,FileInputStream类又不能调用reset方法,试过使用BufferedInputStream类,但是这个类读取完一个缓冲区再读取下一个时会mark参数会变为-1不能标记。
请问有没有其他的方法可以读取多次?

回复
阅读 2.3k
2 个回答
✓ 已被采纳

多次读取同样内容可能不是好的设计,当文件很大时更是如此, 可以一次读取完成多次操作,可以把具体操作做回调函数传到读取函数里做流式处理。

你在读BufferedInputStream前,要先mark,limit记得要足够大,然后读完,在reset。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏