1,流是一组有顺序的,有起点和重点的字节集合,是对数据传输的总称和抽象。即数据在两个设备之间的传输称作流。流的本质就是数据传输,根据数据传输的特性,将流抽象为各种累,方便直观的进行数据操作。

2,根据处理数据类型不同,分为字符流、字节流

 根据数据流向不同,分为输入流、输出流

3,因为数据的编码不同,从而有了对字符进行高效操作的流对象,即字符流,它的本质就是基于字节流读取时,去查了知道的码表

  字节流与字符流区别:

    读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读取多个字节

    处理对象不同:字节流能处理所有类型的数据(图片、avi等),字符流只能处理字符类型的数据

  所以,只要处理纯文本数据,应优先考虑使用字符流,除此之外都应使用字节流

4,对于输入流是读操作,对于输出流是写操作

5,输入字节流InputStream

  所有输入流的父类,是一个抽象类

  ByteArrayInputStream基本的流介质,从byte数组读取文件

  StringBufferInpputStream基本的流介质,从StringBuffer中读取数据

FileInputStream基本的流介质,从本地文件中读取数据

  PipedInputStream是从与其他线程共用的管道中读取数据

6,输出字节流OutPutStream

  所有输出字节流的父类,是一个抽象类

  ByteArrayOutputStream基本的流介质,向byte数组写入数据

  FileOutputStream基本的流介质,向本地文件中写入数据

  PipedOutputStream向与其他线程共用的管道中写入数据

7,字符输入流Reader

  所有输入字符流的父类,是一个抽象类

  charReader、StringReader是两种基本的介质流,它们分别从char数组,String中读取数据

  pipedReader是从与其他线程共用的管道中读取数据

  InputStreamReader是连接字节流和字符流的桥梁,它将字节流转变为字符流。FileReader是一个到达此功能常用的工具类,在其源代码中明显使用了将FileInputStream转变为Reader的方法

8,字符输出流Writer

  所有输出字符流的父类,是一个抽象类

  charArrayWriter、StringWriter两种基本的介质流,分别向Char数组,String中写入数据。

  pipedWirter向与其他线程共用的管道中写入数据

  BufferedWriter是一个装饰器,为writer提供缓冲功能

  OutputStreamWriter是OutputStream到Writer转换的桥梁,它的子类FileWriter是实现此功能的工具类。

9,字符流与字节流转换

  转换流的特点

    字符流和字节流直接的桥梁

    可对读取到的字节数据经过知道编码转换为字符

    可对读取到的字符数据经过知道编码转换成字节

  具体对象体现

    InputStreamReader:字节到字符的桥梁

    OutputStreamWriter:字符到字节的桥梁

      这两个流对象时字符体系中的成员,他们又有转换作用,所以构造的时候需要传入字节流对象

10,File类

  使用对象的思想来操作文件和文件夹,保存文件或目录的元数据信息,如文件名、文件长度、最后修改时间、是否可读、获取当前文件路径名、判断文件是否存在、获取当前目录文件列表、创建、删除文件和目录等方法

IO流学习的更多相关文章

  1. Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

    Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...

  2. Java IO流学习总结八:Commons IO 2.5-IOUtils

    Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...

  3. Java IO流学习总结(1)

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...

  4. Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

    在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...

  5. Java IO流学习总结一:输入输出流

    Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...

  6. Java IO流学习

    Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...

  7. IO流学习小结

    今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

  8. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  9. (转载) java:IO流学习小结

    今天刚刚看完Java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

  10. java的Io流学习

    Java中io流的学习(一)File:https://blog.csdn.net/qq_41061437/article/details/81672859 Java中io流的学习(二)FileInpu ...

随机推荐

  1. php MySQL 选择数据库

    在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库. 从命令提示窗口中选择MySQL数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库.你 ...

  2. sql server 将某一列的值拼成一个字符串 赋值到一个字段内

    DECLARE @refCodeitems VARCHAR(800),   SELECT @refCodeitems=ISNULL(@refCodeitems,'')+refCodeitem +'/' ...

  3. k8s aliyun mirros

    安装kubernetes的时候,需要安装kubelet, kubeadm等包,但k8s官网给的yum源是packages.cloud.google.com,国内访问不了,此时我们可以使用阿里云的yum ...

  4. 三十九.NoSQL概述 部署Redis服务 、 部署LNMP+Redis

    1. 搭建Redis服务器 在主机 192.168.4.50 上安装并启用 redis 服务 设置变量test,值为123 查看变量test的值   1.1 搭建redis服务器 1.1.1 安装re ...

  5. Qt进程间通信

    Qt 提供了四种进程间通信的方式: 使用共享内存(shared memory)交互:这是 Qt 提供的一种各个平台均有支持的进程间交互的方式. TCP/IP:其基本思想就是将同一机器上面的两个进程一个 ...

  6. Linux操作系统常用命令合集——第六篇-软件包操作(2个命令)

    一.前言介绍 软件包即程序包 程序包管理 关键词:rpm程序包管理.YUM仓库管理.源码编译安装 程序包管理: 将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装. ...

  7. 代码 | 自适应大邻域搜索系列之(7) - 局部搜索LocalSearch的代码解析

    前言 好了小伙伴们我们又见面了,咳咳没错还是我.不知道你萌接连被这么多篇代码文章刷屏是什么感受,不过,酸爽归酸爽.今天咱们依然讲代码哈~不过今天讲的依然很简单,关于局部搜索LocalSearch的代码 ...

  8. NetworkX系列教程(10)-算法之二:最小/大生成树问题

    小书匠 Graph 图论  重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定 ...

  9. 关于.eslintrc.js代码检测的一些配置

    配置参数 rules: { "规则名": [规则值, 规则配置] }  规则值: "off"或者0 //关闭规则关闭 "warn"或者1 / ...

  10. Linux find,grep 命令

    使用实验楼Linux环境开发,部分内容有所参考,link:https://www.shiyanlou.com/ 概述: find: 在目录中搜索文件,它的使用权限是所有用户 命令格式: find [路 ...