转载地址:http://blog.csdn.net/yuebinghaoyuan/article/details/7388059

java.io 中的流,可以从不同的角度进行分类。

按照数据流的方向不同可以分为:输入流和输出流。

按照处理数据单位不同可以分为:字节流和字符流。

按照实现功能不同可以分为:节点流和处理流。

输出流:

输入流:

因此输入和输出都是从程序的角度来说的。

字节流:一次读入或读出是8位二进制。

字符流:一次读入或读出是16位二进制。

字节流和字符流的原理是相同的,只不过处理的单位不同而已。后缀是Stream是字节流,而后缀是Reader,Writer是字符流。

节点流:直接与数据源相连,读入或读出。

直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。

处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。

Jdk提供的流继承了四大类:InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。

以下是java中io中常用的流。

字节输入流:

字节输出流:

字符输入流:

字符输出流:

简单介绍其上图:

对文件进行操作:FileInputStream(字节输入流),FileOutputStream(字节输出流),FileReader(字符输入流),FileWriter(字符输出流)

对管道进行操作:PipedInputStream(字节输入流),PipedOutStream(字节输出流),PipedReader(字符输入流),PipedWriter(字符输出流)

PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用,共同完成管道的读取写入操作。主要用于线程操作。

字节/字符数组:ByteArrayInputStream,ByteArrayOutputStream,CharArrayReader,CharArrayWriter是在内存中开辟了一个字节或字符数组。

Buffered缓冲流::BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter,是带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。

转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。

数据流:DataInputStream,DataOutputStream。

Java 基础【13】 I/O流概念分析整理相关推荐

  1. Java基础13:反射与注解详解

    Java基础13:反射与注解详解 什么是反射? 反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性. Orac ...

  2. Java基础编程及思维导图整理

    我把Java基础编程及思维导图整理的超级详细,小白都能看懂 Java基础编程及其思维导图 目录: Java学习导图 一.Java基本语法 1.关键字与标识符 2.变量分类 3.运算符 4.流程控制 二 ...

  3. Java基础之I/O流

    一.什么是流? 1. I/O的定义 :  Input/Out   入/出 Java通过流来执行I/O 2.什么是流?   流,是一种抽象的东西,咱们先抛开I/O不说,单说计算机中,如果想要让软件来改变 ...

  4. Java基础:常用IO流

    1. 数据流 1.1 概述 数据流是操作基本数据类型的流,分为数据输入流,数据输出流. 1.2 数据输入流 1.DataInputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类 ...

  5. java基础知识点、面试选择题归纳整理

    前言 之前刷了一些题,为了方便自己日后可以快速的查缺补漏以及方便有需要的人,这里整理了一些个人感觉比较有意义的选择题,题目均来自牛客网的java相关选择题. 如各位看官发现哪里写的不对的,请帮忙指出, ...

  6. Java基础篇:IO流

    文章目录 一.File类的使用 File类的概述 File类的实例化 File类的常用方法 二.IO流原理及流的分类 Java IO原理 流的分类 流的体系结构 输入.输出的标准化过程 三.节点流(文 ...

  7. java基础教程哪个好,吐血整理

    RabbitMQ: 优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置 缺点:性能和吞吐量较差,不易进行二次开发 RocketMQ: 优点:性能好,稳定可靠,有活跃的中文社区,特点响应快 缺点:兼容 ...

  8. Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  9. 重拾Java基础知识:IO流

    I0流 前言 字节流 InputStream OutputStream 字符流 Reader Writer 缓存流 转换流 序列化流 数据流 字节数组流 打印流 校验流 数据压缩 ZIP压缩和解压 G ...

最新文章

  1. PHP 搜索引擎蜘蛛访问检测和统计
  2. Qt编写数据可视化大屏界面电子看板12-数据库采集
  3. linux系统做的小游戏,2007最新 100个Linux系统上的小游戏汇集
  4. python dll注入 网络_python – 检测反射型DLL注入
  5. 面试准备每日五题:C++(四)——typedefdefine、指针常量、队列栈、地址赋值、C和C++结构体
  6. java2017下载_Download Java for OS X 2017-001
  7. 学习iptables
  8. 【论文解读】UniLM:一种既能阅读又能自动生成的预训练模型
  9. 小米4刷魅族系统后无服务器,小米4线刷魅族Flyme OS系统的教程_小米4 Flyme OS刷机包...
  10. SQL去重的三种方法汇总​
  11. 双极性正弦脉宽调制(双极性SPWM)介绍及MATLAB仿真验证
  12. python turtle画表情包
  13. 8CollapsingToolbarLayout源码分析
  14. 永不停歇(obama在亚利桑那州治大学毕业典礼上的演讲)
  15. 玩机器人可以学到什么?
  16. 咖啡汪日志—— 回退兜底 及实用的服务降级策略
  17. 水下图像增强本科毕业设计帮助思路
  18. 产品经理眼中的我们程序员
  19. Linux 网络编程——TCP/IP 数据包格式解析
  20. php笔试题及答案网易,2020网易前端面试题含答案解析

热门文章

  1. springboot系列六、springboot配置错误页面及全局异常
  2. Linux连接mysql 出现Access denied for user ‘root‘@‘localhost‘(using password: YES)错误解决方案
  3. 如何在Mongoose中更新/更新文档?
  4. 如何制作圆角布局..?
  5. 看看什么是藏匿而不申请[重复]
  6. 通过wget在Linux上下载Java JDK会显示在许可证页面上
  7. 如何在Node.js中处理POST数据?
  8. 电脑遇到蓝屏代码0x000007b问题如何解决
  9. win11语言输入没反应怎么办 windows11语音输入没反应的解决方法
  10. tkmybatis开启二级缓存