1、IO流,什么是IO?

I : Input
O : Output

通过IO可以完成硬盘文件的读和写。

2、IO流的分类?

有多种分类方式:

  • 一种方式是按照流的方向进行分类:

    • 以内存作为参照物
    • 往内存中去,叫做输入(Input)。或者叫做读(Read)。
    • 从内存中出来,叫做输出(Output)。或者叫做写(Write)。
  • 另一种方式是按照读取数据方式不同进行分类:

    • 有的流是按照字节的方式读取数据,一次读取1个字节byte,等同于一次读取8个二进制位。
    • 这种流是万能的,什么类型的文件都可以读取。包括:文本文件,图片,声音文件,视频文件等…
    • 假设文件file1.txt,采用字节流的话是这样读的:
    • a中国bc张三fe
      • 第一次读:一个字节,正好读到’a’
      • 第二次读:一个字节,正好读到’中’字符的一半。
      • 第三次读:一个字节,正好读到’中’字符的另外一半。
    • 有的流是按照字符的方式读取数据的,一次读取一个字符,这种流是为了方便读取
    • 普通文本文件而存在的,这种流不能读取:图片、声音、视频等文件。只能读取纯文本文件,连word文件都无法读取。
    • 假设文件file1.txt,采用字符流的话是这样读的:
    • a中国bc张三fe
      • 第一次读:'a’字符('a’字符在windows系统中占用1个字节。)
      • 第二次读:'中’字符('中’字符在windows系统中占用2个字节。)

综上所述:流的分类
输入流、输出流
字节流、字符流

3、Java中的IO流都已经写好了,我们程序员不需要关心,我们最主要还是掌握,
在java中已经提供了哪些流,每个流的特点是什么,每个流对象上的常用方法有
哪些?
java中所有的流都是在:java.io.*;下。

java中主要还是研究:
怎么new流对象。
调用流对象的哪个方法是读,哪个方法是写。

4、java IO流这块有四大家族:
四大家族的首领:

java.io.InputStream  字节输入流
java.io.OutputStream 字节输出流java.io.Reader        字符输入流
java.io.Writer      字符输出流

四大家族的首领都是抽象类。(abstract class)

所有的流都实现了:

  • java.io.Closeable接口,都是可关闭的,都有==close()==方法。
  • 流毕竟是一个管道,这个是内存和硬盘之间的通道,用完之后一定要关闭,
  • 不然会耗费(占用)很多资源。养成好习惯,用完流一定要关闭。

所有的输出流都实现了:

  • java.io.Flushable接口,都是可刷新的,都有flush()方法。
  • 养成一个好习惯,输出流在最终输出之后,一定要记得flush()
    刷新一下。这个刷新表示将通道/管道当中剩余未输出的数据
    强行输出完(清空管道!)刷新的作用就是清空管道。
    注意:如果没有flush()可能会导致丢失数据。

注意:在java中只要“类名”以Stream结尾的都是字节流。以“Reader/Writer”结尾的都是字符流。

5、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(掌握)

Java基础进阶IO流概述相关推荐

  1. 【Java基础】IO流概述分类、字节流写数据、字节流写数据的三种方式及写数据的两个小问题

    目录 一.IO流概述和分类 二.字节流写数据 三.字节流写数据的三种方式 四.字节流写数据的两个小问题 一.IO流概述和分类 IO流介绍: ● IO:输入/输出(Input/Output) ● 流:是 ...

  2. 【Java基础】· IO流习题详解

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  3. Java基础学习—— IO流

    Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...

  4. java byte char io流_Java基础进阶 IO流之字节流

    1.IO流 1.1.概述 之前学习的File类它只能操作文件或文件夹,并不能去操作文件中的数据.真正保存数据的是文件,数据是在文件中.而File类它只是去对文件本身做操作,不能对文件中的数据进行操作. ...

  5. Java基础之IO流操作

    第14章 File类与IO流 主要内容 File类 字节流 字符流 文件流 缓冲流 转换流 数据流 对象流 打印流 Scanner与System与IO流 教学目标 使用File类对象表示文件或目录 能 ...

  6. 【Java基础】IO流与文件操作的一些手写代码面试题

    概述 代码 概述 IO流是我们最基础的数据操作,最近我身边的一些朋友经常遇到这样的面试题,有的居然还是手写代码,真的太残酷了:不过话说回来,IO流确实是编程里最最基础的操作了,需要我们好好掌握,熟记于 ...

  7. Java基础之IO流

    IO流用来处理设备间数据传输,java对数据的操作是通过流的方式,而这些操作流的对象被封装在IO包中.流可以分为字符流和字节流.字符流可以设置编码方式,这就使得处理文本更加方便. IO常用基类 字节流 ...

  8. java基础三--IO流(1)

    2019独角兽企业重金招聘Python工程师标准>>> 概述: 1.IO流:即Input Output的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的 ...

  9. Java基础知识——IO流

    简介 IO是指Input/Output,即输入和输出.以内存为中心: Input指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等 Output指把数据从内存输出到外部,例 ...

最新文章

  1. 使用傅里叶变换进行图像边缘检测
  2. 反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别?
  3. H5跟ios、android交互跟数据对接
  4. Linux共享文件夹中毒,Linux find命名快速查找中毒文件操作实例
  5. springboot start
  6. Fastest way to duplicate mongodb collection
  7. 三羊献瑞(暴力破解)
  8. java程序设计简单程序分类_3 Java的基本程序设计结构
  9. 诗与远方:无题(三十八)
  10. JAVA day08 接口(interface),多态,instanceof
  11. java 弱引用 使用场景_Java 强软弱虚引用介绍及使用场景
  12. java编码native2ascii下载_使用native2ascii 中文字符与Unicode编码相互转换
  13. C1见习工程师(一)
  14. 小白量化《穿云箭集群量化》(3)量化策略编写(2)
  15. 如何用计算机校验信息,支付宝短信校验服务怎么开通?-电脑教程
  16. 996 log抓取过程
  17. 头歌:键盘输入与屏幕输出练习1
  18. 用友nc系统无法连接到服务器,用友U8其他登陆时提示“系统错误无法连接服务器”...
  19. 浙江大学名录计算机学院博士,通知 | 关于浙江大学计算机学院2017年秋冬博士生创新论坛报名的通知...
  20. 基于PyQt5实现第二界面或弹出界面(子窗口)

热门文章

  1. SerialPort类的用法与示例
  2. 感性电路电流计算_无功补偿装置可以调整不平衡电流,它是什么原理?
  3. mac终端远程登陆服务器
  4. 微型计算机怎么没声音,我的电脑怎么没声音了
  5. 账龄分析表excel模板_6种数据分析图表,Excel工作表最基础的应用,实用美观职场应用广泛...
  6. oracle 存储过程红叉,oracle 存储过程基本语法及问题
  7. 百度Apollo6.0中Overlap.proto每个字段的含义
  8. 如何判断页面是通过PC端还是移动端访问?
  9. 树莓派USB存储设备自动挂载
  10. 第八章【ADFS集成Exchang实现OWA\ECP单点登录SSO】配置Exchange OWA认证方式为ADFS***(本栏目重点)