01-IO流的概述



02-IO流的体系

字节流
字节输出流基本用法




字节输出流写出数据的细节



字节输出流写出数据的三种方式
可以输入整数和字节数组
输入整数数据类型时,惠子哦对那个把数字变成asc表中的对应的字母

换行和续写


这里只创建了一个字符输出流没关闭之前可以重复使用write,如果重新再创建字符输出流就会清空了




每次程序运行都会进行一次该书写,第一次运行是写入,第二次运行就是续写了

字节输入流的基本用法



字节输入流读取数据的细节



字节输入流循环读取
只能说跟迭代器的指针一样,不会复位,每一调用都会获取当前数据,然后指针向后移动一位

两个代码的区别是是否有第三方变量b
如果由第三方变量b,就是先判断再输出
如果没有第三方变量b,就是先输出再判断(因为先打印出负一再进行判断的)
文件拷贝的基本代码


文件拷贝的弊端和解决方案



后面没有数据了,所以返回之前字节数组的内容

每次在装数据的时候会尽可能的装满(先用fileinputstream创建对象,在用这个对象调用read方法,参数为数组,表示一次性装满一个数组,装不满的时候,用剩余的最后的字符覆盖掉前面的一部分,后面没有覆盖到的地方不变)
read里的指针在移动的时候遇到没有数据的时候会停止运动
导致数组里的字符不变
文件拷贝改写

IO流中不同JDK版本捕获异常的方式

字符集
字符集详解(ASCII,GBK)







字符集详解(Unicode)






红色的是系统固定的,黑色的字补充对应的数字
用来识别的二进制比特位一共占八位,汉字识别的比特位占十六个比特位,两个字节




为什么会有乱码?




因为是记事本读取的,而记事本写入和读取都是用的同一套编码规则
Java中编码和解码的代码实现


字符输入流-空参read方法详解







字符输入流-有参read方法详解

system.out.,println 就是打印一次换行一次

读到说的时候,正好读的是\n和说,所以说是自己单独一行

字符流输出流写出数据






字符输入流的底层原理超详解
字符输出流的底层原理超详解


字符流会先写到缓冲区当中,当缓冲区装满时会自动到内存中,或者手动刷新,关流等


综合练习
综合练习01(拷贝文件夹)


高级流
缓冲流


字节缓冲流拷贝文件(一次读写一个字节)



字节缓冲流拷贝文件(一次读写一个字节数组)

字节缓冲流的读写原理

字符缓冲流







综合练习
综合练习01(四种拷贝方式效率对比)


综合练习02(恢复出师表的顺序)


综合练习03(控制软件运行次数)


变量在储存到文件中以后仍然保存着变量的性质,虽然从外表上来看只是一些字符
转换流


转换流基本用法
序列化流
序列化流



反序列化流


序列化流和反序列化流的使用细节


字节打印流





