一.流的概念:
java的输入输出称为流,流是一组有顺序的集合。而流的本质则是数据传输
二.流的分类:
1.根据处理的功能分为字节流(InputStream,OutPutStrean)和字符流(Writer,Reader)
2.根据流的流向可分为输入流(将外设中的数据读取到内存中)和输出流(将内存中的数据写到外设中)。
三.字符流写入文件的一般步骤:
1.创建FileWrite对象,并写入文件的路径及其名称.还应注意抛出IOException异常。
2.通过writer()方法写入数据
3.通过flush()方法,将写好的数据保存至目标文件类
4.保存好后注意关闭字符流,字符流一旦被关闭,在调用write()和flush()方法会编译错误
注意:
a. 由于close()的异常与FileWriter()异常不一样,所以可以声明FileWriter fw = null.
b. close()方法会在内部自动调用flush()方法。
c. 只能操作文本文件,不能操作媒体文件
四.读取文件:
1.常用api:
2.一般读取文件步骤:
1.创建FileReader对象。并写入存在的文件,抛出IOException异常
2.设定char数组. char[] ch = new char[1024]。固定数组长度
3.通过read()方法,并将char数组传进去,返回int类型数据
4.最后再将char转化为字符串。
五.缓冲区的输入(BufferedWrite)和输出(BufferedReader)操作:
目的:java为了提高读写的效率,可以缓冲各个字符,从而实现字符,数组和行的高效阅读与写入。
原理:缓冲区就是内存里的一块区域,把数据先存内存里,然后一次性写入,这样效率比较高
前提:从其构造函数可以看出,需要有输入流和输出流的对象
输入流缓冲区的主要方法:
测试代码:
输出流缓冲区的主要方法:
测试代码:
简单小练习:复制已有文本文件写入到新的目标文件中: