当使用BufferedOutputStream
时,我认为直到我们使用flush才会发生真正的输出? BufferedInputStream
怎么样,有冲洗的方法吗?任何人都可以解释BufferedInputStream的原理吗?
2
A
回答
1
没有冲洗方法。刷新方法仅用于输出。
0
这个想法是,BufferedInputStream
以相对较大的块向底层流询问数据。这种想法是,请求大块数据比向操作系统少量数据请求更有效。
没有冲洗的方法,因为它不需要(没有写,所以没有什么可刷新)。
3
Flushing意味着您将缓冲区的完整内容写入磁盘。这只有在你编写到的磁盘时才有意义,但是当你正在从读取时。
有些人可能会在阅读上下文中使用“刷新缓冲区”,当他们想要明确缓冲区出于某种原因。
但我会致电写入操作冲洗和读取操作清除,以避免混淆。
在学习基础知识时,术语和准确的讲话很重要。尝试获得这种习惯。它会帮助你很多:)
0
每当你需要读取更多的数据时,有一个从操作系统的read()。没有相同的flush()。
MemoryMappedByteBuffer中最接近的位置,您可以在其中触发需要加载的区域。
3
BufferedOutputStream中的实际输出发生在内部缓冲区已满或冲洗时。
使用BufferedInputStream没有刷新,因为它没有意义。
它所做的就是读取其内部缓冲区中的大量来自底层流的数据,这被认为是昂贵的调用,然后在您请求时有效地为您提供小部分数据。只要读取了一个缓冲区数据,它就会自动从底层流中为您读取下一个缓冲区。所以,它的操作对你来说是完全透明的。
0
如果您有选择,请始终使用BufferedInputStream,因为它为您带来了此线程中已列出的优势,并且还实现了.mark()和.reset() - 允许您“重复使用”流的方法(有点)。
相关问题
- 1. 任何人都可以向我解释HABTM原理的工作原理吗?
- 2. 任何人都可以解释OAuth吗?
- 3. 任何人都可以解释这种除法算法的工作原理吗?
- 4. 任何人都可以用C++解释事件处理吗?
- 5. 任何人都可以解释我StandardScaler?
- 6. 任何人都可以解释“视场”
- 7. 任何人都可以解释输出
- 8. 任何人都可以解释以下语句的输出吗?
- 9. 任何人都可以解释这个列表的理解?
- 10. 任何人都可以解释下面的代码吗?
- 11. 任何人都可以解释下面的代码吗?
- 12. 任何人都可以解释默认括号的含义吗?
- 13. 任何人都可以解释我的这段代码吗?
- 14. 任何人都可以解释一下微软的CDN吗?
- 15. 任何人都可以解释python的相对导入吗?
- 16. 任何人都可以解释这个程序的输出吗?
- 17. local_variables的行为 - 任何人都可以解释吗?
- 18. 任何人都可以解释下面的PHP代码吗?
- 19. 任何人都可以解释这段代码的输出吗?
- 20. 任何人都可以解释Jmeter的Non GUI Mode命令吗?
- 21. 任何人都可以将WMI解释为旧的SNMP chap吗?
- 22. 任何人都可以解释我这个代码行吗?
- 23. 任何人都可以在C中解释这个结构吗?
- 24. 任何人都可以解释这种语法吗?
- 25. 任何人都可以解释UriMatcher(Android SDK)吗?
- 26. 任何人都可以向Entity Framework生命周期解释吗?
- 27. 任何人都可以解释我这个javax swing方法吗?
- 28. Lua任何人都可以解释这是什么吗?
- 29. Javascript:任何人都可以解释我这段代码吗?
- 30. C编程,任何人都可以解释这一点吗?
来吧伙计们,让他有些松懈。当我开始编程时,我无法理解客户端和服务器之间的区别。这个问题并没有那么糟糕。 – Raku 2012-01-12 13:47:36