流
流根据方向的不同,可以分为输入和输出流(I/O流)
输入流:用来读取数据的
输出流:用来写出数据的
流又可以分为低级流(字节流)和高级流(处理流或者过滤流)
注意:高级流是不能单独存在的,必须要有低级流对数据进行重写,而高级流必须依赖低级流,去处理低级流,提高书写效率,所以真实处理数据的都是低级流,同一个低级流可以同时被多个高级流去处理
文件输入输出流
字节流:
FileOutputStream:文件输出流
FileInputStream:文件输入流
文件输出流
FileOutputStream():构造方法还支持第二个boolean类型的参数,如果是true,则表示往原文件中追加内容(不会覆盖原来内容)
文件输入流
String str=new String(b,0,a,"GBK"):字符串的构造方法,按照b个字节去读取,从0开始读,实际读到多少(a),就转化多少,并且按照指定字符集去进行转换
缓冲字节输入输出流
BufferedOutputStream:缓冲字节输出流
BufferedInputStrream:缓冲字节输入流
缓冲字节输入流中,会有一个缓冲区,在读取内容的时候,会一次性将缓冲区里面的空间读满,然后再一次读取一个字节
缓冲字节输出流中,也会有一个缓冲区,在写出内容的时候,得等到缓冲区中存满,才会自动写出,但是我们可以通过手动调用flush()方法进行强制写出,或者关闭缓冲流(close)来实现强制写出