就是一般FileInputStream.read(byte[] b)方法每运行一次,都会往后读b.length个字节么,下次运行该方法时会接着上次的地方往下读,不会再在从头开始读。我有没有什么办法让他下一次还是从文件头部开始读?
就是一般FileInputStream.read(byte[] b)方法每运行一次,都会往后读b.length个字节么,下次运行该方法时会接着上次的地方往下读,不会再在从头开始读。我有没有什么办法让他下一次还是从文件头部开始读?
我也遇到过类似的需求,比较简单的方案是先把所有数据读到一个字节数组里,然后就可以用ByteArrayInputStream来操作数据了。
如果数据非常大,内存比较紧缺的话,可以先把部分字节读到字节数组里,做完运算之后,把这部分数据放到ByteArrayInputStream中,然后和原来没读完的流组合成一个SequenceInputStream,然后就可以重新从头读起了。
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答749 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
找个支持mark / reset的InputStream, 比如 BufferedInputStream