* 输入字符流:
* ---------|Reader 所有输入字符流的基类。抽象类
* ------------| FileReader 读取文件字符串的输入字符流
*BufferedReader的使用步骤:
* 1.找到目标文件
* 2.建立数据的输入通道
*
* */
运行结果:Hello World
/*
* 输出字符流:
* ----------| Writer 输出字符流的基类。抽象类
* --------------| FileWriter 向文件输出数据的输出字符流
*
* FileWriter的使用步骤:
* 1.找到目标文件。
* 2.建立数据输出通道
* 3.写出数据
* 4.关闭资源
* FileWriter要注意的事项:
* 1.使用FileWriter写数据的时候,FileWriter内部是维护了一个1024个字符数组的,写数据的时候会先写入到它内部维护的字符数组中,如果需要
* 把数据真正写到硬盘上,需要调用flush或者是close方法或者是填满了内部的字符数组
* 2.使用FileWriter的时候,如果目标文件不存在了,那么会自动创建目标文件。
* 3.使用FileWriter的时候,如果目标文件已经存在了,那么默认情况会先清空文件中的数据,然后再写入数据,如果需要在原来基础上追加数据,
* 需要使用"new FileWriter(File,boolean)"的构造方法,第二参数为true.
*
* */
/*
* 练习:使用字符流拷贝一个文本文件(java文件)
* 接着使用字符流拷贝一个图片(观察图片的大小变化,思考为什么会这样子?)
*
* 拷贝图片出错
*
* 何时使用字符流,何时使用字节流?依据是什么?
* 使用字符流的应用场景:如果是读写字符数据的时候则使用字符流
* 使用字节流的应用场景:如果读写的数据都不需要转换成字符的时候,则使用字节流。(比如图片)
* */
/*
* 输入字符流:
* ----------|Reader 所有输入字符流的基类。 抽象类
* --------------|FileReader 读取文件字符串的输入字符流
* --------------|BufferedReader 缓冲输入字符流。缓冲输入字符流出现的目的是为了提高读取文件的效率和
* 拓展了FileReader的功能。其实该类内部也是维护了一个字符数组
* 记住:缓冲流都不具备读写文件的能力
*
* BufferedReader的使用步骤:
* 1.找到目标文件
* 2.建立数据的输入通道
* */
运行结果:把Demo02.java的内容全部打印出来了。
/*
* 输出字符流:
* ---------| Writer 所有输出字符流的基类 抽象类
* -------------| FileWriter 向文件输出字符数据的输出字符流
* -------------| BufferedWriter 缓冲输出字符流 缓冲输出字符流的作用:提高FileWriter的写数据效率与拓展了FileWriter的功能。
* BufferedWriter的内部只不过是提供了一个8192长度的字符数组作为缓冲区而已,拓展了FileWriter的功能。
*
* BufferedWriter如何使用?
* 1.找到目标文件
* 2.建立数据的输出通道
* */
/*
* 练习:缓冲输入输出字符流用户登录注册....
* */