当前位置: 首页 > news >正文

关于IO流的基础理论

/**
 * 关于IO流(理论部分)
 *    1.什么是IO?  I: Input;   O: Output  也就是输入和输出,就是通过IO可以完成硬盘文件的读和写。
 *    2.IO流的分类:
 *       * 按照流的方向进行分类:(以内存作为参照物)
 *         - 往内存中去,叫做输入(Input),或者叫做读(Read).
 *         - 从内存中出来,叫做输出(Output),或者叫做写(Write).
 *       * 按照读取数据方式进行分类:
 *         - 按照字节的方式读取数据,一次读取一个字节(byte)(等同于一次读取8个二进制位),这种流是万能的
 *           任何类型的文件都能读取,叫做字节流。
 *           例如文件:a中国dhe质数....
 *               第一次读取:一个字节,正好读到‘a’。('a'字符在windows系统中占1个字节。字符在Java中占2个字节,但是对Windows文件来说和Java没关系)
 *               第二次读取:一个字节,正好读到‘中’字符的一半。('中'字符在windows系统中占2个字节。)
 *               第三次读取:一个字节,正好读到‘中’字符的另外一半。
 *
 *         - 按照字符的方式读取数据,一次读取一个字符,这种流只能读取纯文本文件,叫做字符流。*.txt
 *               例如文件:a中国dhe质数....
 *               第一次读取:'a'字符
 *               第二次读取:'中'字符
 *
 *综上所述:
 *     流可分为:输入流、输出流、字节流、字符流
 *
 *     3.java IO流有四大家族:
 *         * java.io.InputStream  字节输入流
 *         * java.io.OutputStream 字节输出流
 *
 *         * java.io.Reader  字符输入流
 *         * java.io.Writer  字符输出流
 *     这四个都是抽象类。(abstract class) 都实现了java.oi.Closeable接口,都是可关闭的。
 *         都有close()方法。流毕竟是一个管道,这个管道是内存和硬盘之间的通道,
 *         用完之后一定要关闭不然会占用很多资源。这是需要我们养成好习惯,用完流一定要关闭。
 *
 *     所有的输出流都实现了:java.io.Flushable接口,都是可刷新的,都有flush()方法。
 *         需要我们养成好习惯:在输出流后面一定要记得flush()刷新一下,用来清空管道。不进行这步操作有可能丢失数据。
 *
 *         注意:在java中只要“类名”以Stream结尾的都是字节流。以“Reader/Writer”结尾的都是字符流。
 *     4.java.io包下需要掌握的16个流:
 *     文件专属:
 *          java.io.FileInputStream  (掌握)
 *          java.io.FileOutputStream (掌握)
 *          java.io.FileReader
 *          java.io.FileWriter
 *      转换流:将字节流转换成字符流
 *          java.io.InputStreamReader
 *          java.io.OutputStreamWriter
 *      缓冲流专属:
 *          java.io.BufferedReader
 *          java.io.BufferedWriter
 *          java.io.BufferedInputStream
 *          java.io.BufferedOutputStream
 *      数据流专属:
 *          java.io.DataInputStream
 *          java.io.DataOutputStream
 *      标准输出流:
 *          java.io.PrintWriter 字符方式
 *          java.io.PrintStream 字节方式(掌握)
 *      对象专属流:
 *          java.io.ObjectInputStream (掌握)
 *          java.io.ObjectOutputStream (掌握)
 */

相关文章:

  • 网站运营推广难做吗/广东网站seo策划
  • wordpress 关闭xmlrpc/好的推广平台
  • 自己建设网站服务器/自己有网站怎么推广
  • wordpress默认login/seo优化网站查询
  • 网站建设工作小组分工/南安网站建设
  • 做动态网站的软件下载/郑州网站seo
  • Apache Airflow Hive Provider <5.0.0 存在操作系统命令注入漏洞
  • 安装nnpy出现错误以及解决
  • BaseAdapter实现的投票案例
  • java微信支付v3系列——6.微信支付查询订单API
  • 【JavaScript】14_window对象与JS提升
  • 8Manage:提高项目执行力的策略有哪些?
  • 【用户交互】
  • 【MATLAB教程案例67】基于Actor-Critic结构强化学习的车杆平衡控制系统matlab仿真
  • 预约挂号系统技术点详解(二)
  • 谈谈vue的路由守卫和keep-alive后生命周期
  • 过半985、单岗位2K+简历!速腾聚创如何开展校园招聘?
  • SpringBoot封装响应处理