文件流
读用input写用output
字节流(Byte Streams)
输入流(input)
输出流(output)
- FileOutputStream: 用于向文件中写入字节流数据。
- ByteArrayOutputStream: 将数据写入到字节数组中。
- ObjectOutputStream: 用于将Java对象写入流中,进行序列化操作。
- PipedOutputStream: 用于线程间的管道通信,配合PipedInputStream使用。
- BufferedOutputStream: 提供了缓冲功能,可以提高写入效率。
- DataOutputStream: 以机器可读的方式向流中写入基本数据类型的数据。
FilterOutputStream是除FileOutputStream外的其他类的超类
FileOutputStream和FilterOutputStream都继承自outputStream
FileOutputStream和BufferedOutputStream的区别
- 功能:
FileInputStream用于从文件中读取字节流数据。BufferedInputStream是一个缓冲流,它可以提供更高的读取性能,通过在内存中创建一个缓冲区,减少了直接访问文件的次数,从而提高了读取效率。
- 性能:
FileInputStream每次读取都直接访问文件,并将数据直接返回,没有缓冲机制,因此可能会导致频繁的磁盘访问,效率相对较低。BufferedInputStream使用了一个内部缓冲区,默认大小为8192字节,它在读取时会一次性从文件中读取一定量的数据到缓冲区,然后逐步从缓冲区中返回数据。这种缓冲的方式减少了对文件的直接访问次数,提高了性能。
- 使用方式:
- 使用
FileInputStream时,每次读取需要直接操作流对象。 BufferedInputStream可以包装在其他输入流上,例如可以将FileInputStream作为参数传递给BufferedInputStream,这样就可以利用缓冲功能提高性能。
- 使用
总体来说,使用BufferedOutputStream时有内存开销,而使用FileInputStream没有内存开销但是会更耗时,如果需要对性能有较高要求,可以考虑使用BufferedInputStream,它可以在读取文件时提供更好的性能。但对于小型文件或对性能要求不是非常高的场景,直接使用FileInputStream也是可以的。
字符流(Character Streams)
- THE END -
最后修改:2024年2月18日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://jiaheming.cn/2024/01/%e6%96%87%e4%bb%b6%e6%b5%81/

共有 0 条评论