论坛申请网站备案前置审批,虐做视频网站,智能网站开发工具,wordpress广告加速[14]字节流一.字节流1.什么是字节流是IO流中的一种, 可以用来读写字节数据.2.字节流和字符流的区别计算机中存储任何数据都是以字节的形式, 所以字节流可以读写任意类型的数据.在读写的数据是字符的时候, 用字符流更方便.3.什么时候用字节流, 什么时候用字符流当从一个文本文件…[14]字节流一.字节流1.什么是字节流是IO流中的一种, 可以用来读写字节数据.2.字节流和字符流的区别计算机中存储任何数据都是以字节的形式, 所以字节流可以读写任意类型的数据.在读写的数据是字符的时候, 用字符流更方便.3.什么时候用字节流, 什么时候用字符流当从一个文本文件中读取数据, 在程序中当作字符使用时, 或者写出一段字符数据到文件中时, 使用字符流比较方便.字符流读取数据就是字符, 字符流可以直接写出字符如果只是读写数据, 不转为字符, 那么就都可以使用字节流.4.read()方法为什么返回intReader.read() 读取一个字符, 返回intInputStream.read() 读取一个字节, 返回int为什么不是返回char和byte呢?Reader.read() 如果返回char, 那么无法表示流末尾, 因为所有的char都有可能在流中出现.在read方法内部, 将读取到的char装入int, 这时正常数据不受影响, 强转回char之后直接使用, 也可以返回-1代表流末尾了.InputStream.read() 如果返回byte, 也是无法表示流末尾的, 因为从-128到127中所有值都有可能在流中出现.在read方法内部, 是将读取到的字节255, 正数没有任何变化, 负数转为了正数, 这时就可以用-1表示文件末尾了在真正使用数据时, 只要将转换后的数强转回byte即可5.使用字节流拷贝文件使用FileInputStream和FileOutputStream, 逐个字节拷贝. 效率很低, 不推荐.* 使用FileInputStream和FileOutputStream, 定义数组作为缓冲区, 一次读取一个数组, 一次写出一个数组, 提高效率.* 使用BufferedInputStream和BufferedOutputStream, 逐个字节拷贝, 但其内部使用了缓冲机制, 速度较快.二.转换流* 1.InputStreamReader当获取了一个字节输入流, 希望从中读取字符数据时, 可以把字节输入流转为字符输入流InputStreamReader当读取非平台默认编码的字符文件时, FileReader做不到, 只能使用InputStreamReader.* 2.OutputStreamWriter当获取了一个字节输出流, 希望向外写出字符数据时, 可以把字节输出流转为字符输出流OutputStreamWriter当写出非平台默认编码的字符文件时, FileWriter做不到, 只能使用OutputStreamWriter三.标准输入输出流1.System.in标准输入流, InputStream, 可以从键盘输入读取字节.可以使用System.setIn(InputStream)改变标准输入流的数据源.2.System.out标准输出流, PrintStream, 可以向屏幕输出数据.可以使用System.setOut(PrintStream)改变标准输出流的数据目的地.四.练习1.对文件进行加密.2.读写UTF-8文件.3.从键盘输入读取学生考试成绩, 对其进行排序, 将结果输出到stu.txt文件中