前言:

对于IO流,我是在很早之前就有听说过,但是对于IO的认知一直停止在“IO是输入输出流”,但是它究竟是做什么用的? 或者说它的基本原理是什么?   我们通过这篇博客来简单的学习一下。

IO是什么?

IO是指Input/Output,即输入和输出,并且以内存为核心

  • input输入:指从外部读入数据到内存中
  • output输出:指把数据从内存输出到外部

对于计算机而言,数据都是以二进制的形式读出或者写入。我们可以把文件想象为一个水桶,我们可以通过管道将木桶中的水抽出来,或者通过管道送进去

流的概念:

对于流,我们可以想象一下流水的场景,同样IO流一样是字节移动的方式,它不停的向目标出移动数据,我们需要控制的就是根据流的移动方向从流中读取数据或者向流中写入数据。

JAVA流的例子: 

我们在下载电影的时候,可以看到进度条,肯定不是等电影全部下载完毕之后才保存到磁盘上而是下载一个字节就保存一个字节。

下面我们就通过下载电影的例子来分析一下IO流:

我要从迅雷中下载一部“黄金大劫案”的电影:

通过上面的示意图我们可以看到所有的输入和输入都是针对于内存而言的。

现在我们基本了解了基本的IO原理,下面来分析一下IO的组成

IO主要分为两类:

  1. 基于字节操作的IO接口:InputStream 和 OutputStream
  2. 基于字符操作的IO接口:Writer和Reader

无论磁盘还是网络的传输,最小的存储单位都是字节,但是在程序中操作的数据大多数都是字符形式,所以Java也提供了字符型的流。

字节流和字符流的区别:

A,读写单位不同,字节流以字节为单位(一个字节为8bit位),字符流以字符为单位

B,操作对象不同,字节流可以处理任何数据    字符流只能处理字符相关类型数据

JAVA - 什么是IO流相关推荐

  1. java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上

    标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class  ...

  2. Java中的IO流(六)

    上一篇<Java中的IO流(五)>把流中的打印流PrintStream,PrintWriter,序列流SequenceInputStream以及结合之前所记录的知识点完成了文件的切割与文件 ...

  3. java中的IO流(超全)(超详解)结合实例轻松掌握

    java进阶之IO流 IO流的概念(大纲): 1.InputStream和OutputStream的继承关系图 2.Reader和Writer的继承关系图 3.文件专属流(加※为重点掌握) ※File ...

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

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

  5. Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 import java.io.File;public class Demo{public static void main(String[] args){// 目 ...

  6. Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  7. Java基础学习—— IO流

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

  8. java io流分为,Java中的IO流按照传输数据不同,可分为和

    Java中的IO流按照传输数据不同,可分为和 答:字节流 字符流 克里斯蒂安 · 麦茨指出:想象的能指就是电影的能指,作为象征的科学,在第三视野范围内的解读,它是( ) 答:建立在共同的永久的背景之中 ...

  9. 重新java系列之IO流

    重新java系列之IO流 内容介绍 学习目标 字符输入流 字符输入流[Reader] FileReader类 构造方法 读取字符数据 使用演示: 字符输出流 字符输出流[Writer] FileWri ...

  10. 猿创征文|Java中的IO流大家族 (两万字详解)

    目录 IO流 概述 分类 四大家族 需要掌握的16个流 文件专属 FileInputstream(读 字节) FileInputStream类的其他常用方法 FileOutputStream (写 字 ...

最新文章

  1. 利用Eventlog Analyzer分析日志
  2. java 利用dfs生成简单的随机迷宫(效率不高)
  3. 决策树和随机森林(下)
  4. 再不学习我们就out了
  5. java测试netty_《Netty官方文档》基准测试
  6. java heap 查看_使用VisualVM查看Java Heap Dump
  7. 卷积神经网络工作原理直观的解释
  8. 递归java程序_JAVA编程基础之递归结构
  9. 询问区间内最大值-最小值
  10. Tomcat下载安装配置教程
  11. vtk 实现mimics软件中的Split/Merge算法
  12. Python的scrapy之爬取6毛小说网
  13. 职业规划 思维导图
  14. RAID磁盘阵列详解与维护
  15. word2016背景色如何设置为保护眼睛的苹果绿
  16. 基于web的科研项目管理系统设计与实现
  17. Android 压缩优化apk
  18. 计算机基础知识问卷,大学计算机基础课程教学内容的调查分析
  19. Spring Cloud Stream核心原理介绍
  20. 择时策略1:一个金叉死叉(python)

热门文章

  1. soft attention and self attention
  2. 可再生能源证书市场现状研究分析-
  3. svmtrain已被删除,请改用fitcsvm
  4. scrapy实战5 POST方法抓取ajax动态页面(以慕课网APP为例子):
  5. win7 修改锁屏背景壁纸 的操作方法
  6. c语言用户标识符不能描述常量,福建省c语言考试试题c题库选择题答案06-08(最新)...
  7. Nginx+Vue.js+Tornado前后端分离架构环境实践(1)
  8. 内存越界问题及malloc_chunk边界标记法和空间复用
  9. 主流浏览器汇总(火狐,OPera,safari,谷歌等)
  10. 一辈子是场修行,短的是旅行,长的是人生 .