IO流
I表示input,是数据从硬盘进内存的过程,称之为读
O表示output,是数据从内存到硬盘的过程,称之为写
流是一个抽象概念,数据在设备间的传输称为流,流的本质是数据传输
IO的使用场景
字节流能操作所有的文件
字符流只能操作纯文本文件
字节流
字节流的抽象基类
InputStream:这个抽象类是表示字节输入流的所有类的超类
outputStream:这个抽象类是表示字节输出流的所有类的超类
使用FileInputStream和FileOutputStream读写文本文件
字节流写数据的两个小问题
字节流写数据如何实现换行:windows:\r\n;linux:\n;mac:\r
字节流写数据如何实现追加写入:
public FileoutputStream(String name,boolean append)
创建文件输出流以指定的名称写入文件。如果第二个参数为true,则字节将写入文件的末尾而不是开头
字节缓冲流
BufferedOutputStream:字节缓冲输出流
BufferedInputStream:字节缓冲输入流
字节缓冲流:可以提高效率,不能直接操作文件,需要传递字节流
拷贝文件的四种方式:
字节流一次读写一个字节
字节流一次读写一个字节数组
字节缓冲流一次操作一个字节
字节缓冲流一次操作一个字节数组
如果不自定义数组,使用缓冲流的效率比字节流要高,如果自定义数组,使用字节流的效率要比缓冲流的效率高