流就是程序和设备之间嫁接起来的一根用于数据传输的管道,这个管道上有很多按钮,不同的按钮可以实现不同的功能!
这根带有按钮的用于数据传输的管道就是流!
四大基本抽象流字节输入流:InputStream
字节输出流:OutputStream
字符输入流:Reader
字符输出流:Writer
注:抽象流实质上就是抽象类,实际上使用到的是继承于它们的子类!FileInputStream、FileOutputStream、FileReader、FileWriter
流的分类标准
按数据流的方向不同可以分为输入流(读入程序)和输出流(写入外部文件)
按处理数据单位不同可以分为字节流和字符流
按功能不同可以分为节点流(原始流)和处理流(包裹流)
注:节点流为可以从一个特定的数据源(节点)读写数据(如文件、内存)
处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能
字节流和字符流的区别
FileInputStream、FileOutputStream为字节流,一次读取一个字节,可用于所有格式的读写,但是在控制台输出中文字符会有乱码
FileReader、FileWriter为字符流,一次读取一个字符(两个字节),可用于文本文件的读写,但是不能用于非文本文件的读写,因为非文本文件就不是字符(编码问题)