ByteArrayInputStream,参数为初始的字节数组initBytes(初始数据),通过此流将初始的字节数组,经过一定的缓冲区,一部分一部分读出来( while len=read(bytes) != -1)
ByteArrayOutputStream,无参数, write方法不断通过缓冲区写入字节流,最终 bos.toByteArray(),输出所有字节
File -> FileOutputStream(写字符)
File -> FileOutputStream(写字符) -> BufferedOutputStream(写字节)
File -> FileOutputStream(写字符) -> OutputStreamWriter -> BufferedWriter
FILE -> FileWriter(写字符)
FILE -> FileWriter -> BufferedWriter(写字符) 最快写文本 和等效File -> FileOutputStream(写字符) -> OutputStreamWriter -> BufferedWriter FileWriter的父类就是OutputStreamWriter,他俩都是实现Writer类
byte[]-> ByteArrayOutputStream
https://www.dandelioncloud.cn/article/details/1408062094016987137 FileOutputStream和FileWriter和FileWriter性能比较
https://blog.csdn.net/iloki/article/details/122252668 各种方法比较 FileWriter的父类就是OutputStreamWriter,他俩都是实现Writer类,从这点上来说,方法4和6几乎没区别
https://blog.csdn.net/ruby_one/article/details/81744794 关于BufferedInputStream和FileInputStream的区别
https://blog.csdn.net/shennyuan/article/details/76607278 FileOutputStream 与 BufferedOutputStream 的区别
<br /> 总结:
FileOutputStream 文件输出流 ,无缓冲区,write一次,就往文件里面写一次数据,效率较低。
BufferedOutputStream 缓存输出流, 缓存区默认大小为8192byte,可通过构造函数定义。 write方法将数据写入缓存区中,缓存区满时写入文件。 flush方法将缓存区的数据写入文件。高效。