输入字符流与输出字符流

/*
 * 输入字符流:
 * ---------|Reader  所有输入字符流的基类。抽象类
 * ------------| FileReader  读取文件字符串的输入字符流
 
 *BufferedReader的使用步骤:
 *     1.找到目标文件
 *     2.建立数据的输入通道
 * 

 * */

输入字符流与输出字符流_第1张图片

运行结果: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.
 * 
 * */

输入字符流与输出字符流_第2张图片

/*
 * 练习:使用字符流拷贝一个文本文件(java文件)
 * 接着使用字符流拷贝一个图片(观察图片的大小变化,思考为什么会这样子?)
 * 
 * 拷贝图片出错
 * 
 * 何时使用字符流,何时使用字节流?依据是什么?
 * 使用字符流的应用场景:如果是读写字符数据的时候则使用字符流
 * 使用字节流的应用场景:如果读写的数据都不需要转换成字符的时候,则使用字节流。(比如图片)
 * */

输入字符流与输出字符流_第3张图片输入字符流与输出字符流_第4张图片


/*
 * 输入字符流:
 * ----------|Reader  所有输入字符流的基类。 抽象类
 * --------------|FileReader 读取文件字符串的输入字符流
 * --------------|BufferedReader 缓冲输入字符流。缓冲输入字符流出现的目的是为了提高读取文件的效率和
 *                拓展了FileReader的功能。其实该类内部也是维护了一个字符数组
 * 记住:缓冲流都不具备读写文件的能力
 * 
 * BufferedReader的使用步骤:
 *       1.找到目标文件
 *       2.建立数据的输入通道
 * */

输入字符流与输出字符流_第5张图片输入字符流与输出字符流_第6张图片

运行结果:把Demo02.java的内容全部打印出来了。

/*
 * 输出字符流:
 * ---------| Writer  所有输出字符流的基类      抽象类
 * -------------| FileWriter 向文件输出字符数据的输出字符流
 * -------------| BufferedWriter 缓冲输出字符流    缓冲输出字符流的作用:提高FileWriter的写数据效率与拓展了FileWriter的功能。
 * BufferedWriter的内部只不过是提供了一个8192长度的字符数组作为缓冲区而已,拓展了FileWriter的功能。
 * 
 * BufferedWriter如何使用?
 *       1.找到目标文件
 *       2.建立数据的输出通道
 * */

输入字符流与输出字符流_第7张图片


/*
 * 练习:缓冲输入输出字符流用户登录注册....
 * */

输入字符流与输出字符流_第8张图片输入字符流与输出字符流_第9张图片

你可能感兴趣的:(输入字符流与输出字符流)