导图社区 IO流数据传输基础知识框架学习笔记思维导图
IO流数据传输基础知识框架学习笔记思维导图,一张图带你完全了解相关内容,帮你提高效率,赶紧来试一试吧~
网店详情页排版方法分享~包括中心页面组成,优质详情必备,详情页的排版参考方法。感兴趣的小伙伴可以看看哦~
喷绘色彩基础培训方案,内容涵盖色彩基础,喷绘写真。框架清晰,内容丰富,希望对小伙伴有所帮助哦~
酒窖营销计划方案,包括结果目标,过程目标。框架清晰,内容丰富,有需要的小伙伴可以看看哦~ 可供大家参考,借鉴,交流。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
IO流数据传输基础知识框架学习笔记思维导图
作用:
用于设备的数据传输
使用IO流的注意事项:
1、使用前,导包必须是IO包。
2、使用时,要处理异常。
3、使用后,关闭资源。
分类:
按操作分
字节流(可以操作任何数据)
基本的字节输入流 :FileInputStream (读数据)
基本的字节输出流:FileOutputStream(写数据)
高效字节输入流:BufferedInputStream
高效的字节输出流:BufferedOutputStream
高效字节流(字节缓冲流)
小数组和缓冲流谁的效率高?
如果小数组的长度是8192的时候,小数组会稍微快一点 实际开发中:用小数组或者用缓冲流都可以
字符流(只能操作纯字符数据)
按流向分
输入流(读文件)
输出流(写文件)
基本操作
拷贝:
1、拷贝一个字节
不推荐,效率太低
read()
思考:问什么返回值是int类型?
因为字节输入流可以操作任意类型的文件,有可能在读到中间的时候遇到111111111那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收,如果11111111会在其前面补上24个0凑足4个字节,那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型
write(int b)
2、拷贝所有的字节
不推荐,文件过大可能会导致内存溢出
read(byte[] arr)
write(byte[] bys)
available()获取到文件的字节数
3、按小数组拷贝。
实际开发中用的是这种情况
read( byte[] bys)
实际开发中,读取的字节数组的长度都是:1024的整数倍
write(byte[] bys,0,len)
从0索引开始,把实际读到的有效的字节数组写到文件中
拷贝中文
1、读:可能会读到半个字节,会出现乱码的情况。(用字符流读写)
2、写:因为字节流操作的是字节,所以我们要把数据转成字节数组。(getBytes())
标准的异常处理机制(面试题)
1.6版本
1.7版本
如果对象要实现自动关闭,其所在的类必须实现 AutoCloseable接口,重写里边的close()方法
close()和flush()有什么区别(面试)
close():关闭之前会刷新一次缓冲区,把缓冲区中 的内容写到文件中关闭后,就不能再写数据
flush():具有刷新的功能,刷新完之后,还可以继续写
练习题:
1、图片加密
2、在控制台录入文件的路径,将文件拷贝到当前项目下
3、将键盘录入的数据拷贝到当前项目下的text.txt文件下,录入quit时就退出