fileinputstream和bufferedinputstream的区别
时间: 2024-04-05 19:21:11 浏览: 131
Java中的FileInputStream 和 FileOutputStream 介绍_动力节点Java学院整理
5星 · 资源好评率100%
`FileInputStream` 和 `BufferedInputStream` 都是 Java I/O 中的输入流,但它们之间有一些区别。
- `FileInputStream` 用于从文件中读取数据,而 `BufferedInputStream` 则是用于提高读取数据的效率(可以减少对底层文件系统的访问)。
- `FileInputStream` 是字节流,而 `BufferedInputStream` 是字节缓冲流。因此,`BufferedInputStream` 在读取数据时会先将数据缓存在缓冲区中,等到缓冲区满了(或者达到某个阈值)再一次性写入内存中,从而减少了对底层文件系统的访问次数。
- `FileInputStream` 每次读取数据都会从磁盘中读取,而 `BufferedInputStream` 每次读取数据都是从缓冲区中读取,只有当缓冲区中的数据不够时才会从磁盘中读取,因此 `BufferedInputStream` 的读取速度会更快。
- `FileInputStream` 没有缓冲区,而 `BufferedInputStream` 有一个缓冲区,缓冲区的大小默认为 8192 字节。
因此,如果需要从文件中读取数据,建议使用 `FileInputStream`;如果需要提高读取数据的效率,建议使用 `BufferedInputStream`,它可以将 `FileInputStream` 包装成一个缓冲流,从而提高读取数据的效率。
阅读全文