输入输出是指程序与外部设备或其他计算机进行交互的操作
输入流:将数据从外设或外存(如键盘、鼠标、文件等)传递到应用程序的流
输出流:将数据从应用程序传递到外设或外存(如屏幕、打印机、文件等)的流
缓冲流:专门用于传送数据的一块内存,提高内存与外部设备之间的数据传输效率
Java流类图结构
I/O流
字节流与字符流
1、字节流:可以操作任何数据的传入和传出,因此传输的文件可以是:音频,视频,图片,文本
字符流:只能传输文本类型的数据(人可以认识的字体),因此传输的文件只可以是:文本,但其有其存在的价值是:在字节流的基础上融入了编码的操作
2、字节流的父类(抽象的abstract):InputStream 字节输入流(读)
OutputStream 字节输出流(写)
字符流的父类(抽象的abstract):Reader 字符输入流
Writer 字符输出流
字节流的写代码
创建file:File file=new File(D:\\java\\lib);
字节流的读代码
FileInputStream
字符流的写代码
FileWriter
字符流的读代码
FileReader
将一个文件(图片视频)拷贝到另一个地方
对象处理流ObjectInputStream\ObjectOutputStream
对象要想保存在磁盘或在网络上传输,其实体类必须可序列化,它是将对象转化为字节序列,使其可以脱机运行。 要想实现序列化,实体类必须实现java.io.serializable接口。