1、无缓冲区(要通过中间数组,如byte数组和char数组,细粒度)
特点
- 构造方法传入的是一个地址
- 只能一个一个读,操作很精细
FileInputStream
别忘记
- close()
FileOutputStream
别忘记
- flush()
- close()
注意下面的代码块(理解):
{
FileOutputStream a = new FileOutputStream("文件路径");
a.write(byte[] b);
}
反复执行会覆盖文件内容
但是!
{
FileOutputStream a = new FileOutputStream("文件路径");
a.write(byte[] b);
a.write(byte[] b);
a.write(byte[] b);
}
可以连续写3次不覆盖!
理解上面两种的区别:
- 第一种需要用到append参数,用处是把上面两行代码封装到一个函数里面,每次调用的时候都可以在文件的末尾追加数据,而不会覆盖。
- 第二种方法就适用于平常写代码进行测试的时候。
2、带缓冲区的(日常能用到)
特点
- 构造方法传入的是一个节点流
- 可以一行一行地读
- 可以换行
理解缓冲区的概念
无缓冲区的要通过中间数组,这个中间数组就相当于缓冲区,能把数据打包成一团然后传送给接收方。
3、转换流
核心:3重套娃
4、理解file单词
既可以代表一个路径,也可以代表一个文件名。