IO系统

作者: _Rice_ | 来源:发表于2018-09-26 09:41 被阅读0次

IO流简单来说就是输入流和输出流。,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中。

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

IO流的分类

根据处理数据类型的不同分为:字符流和字节流

根据数据流向不同分为:输入流和输出流

字符流和字节流

字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。字节流和字符流的区别:

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

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

  • (3)字节流在操作的时候本身是不会用到缓冲区的,是文件本身的直接操作的;而字符流在操作的时候下后是会用到缓冲区的,是通过缓冲区来操作文件,我们将在下面验证这一点。

结论:优先选用字节流。首先因为硬盘上的所有文件都是以字节的形式进行传输或者保存的,包括图片等内容。但是字符只是在内存中才会形成的,所以在开发中,字节流使用广泛。

输入流和输出流

对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。

Java流类图结构:
image

通常输入流和输出流是配套使用的

java各流简要说明图
image

具体的使用就不详细了,附上对应链接

01. java io系列01之 "目录"

02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)

03. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)

04.java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例

05. java io系列05之 ObjectInputStream 和 ObjectOutputStream

06. java io系列06之 序列化总结(Serializable 和 Externalizable)

07. java io系列07之 FileInputStream和FileOutputStream

08. java io系列08之 File总结

09. java io系列09之 FileDescriptor总结

10. java io系列10之 FilterInputStream

11. java io系列11之 FilterOutputStream

12. java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例

13. java io系列13之 BufferedOutputStream(缓冲输出流)的认知、源码和示例

14. java io系列14之 DataInputStream(数据输入流)的认知、源码和示例

15. java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

16. java io系列16之 PrintStream(打印输出流)详解

17. java io系列17之 System.out.println("hello world")原理

18. java io系列18之 CharArrayReader(字符数组输入流)

19. java io系列19之 CharArrayWriter(字符数组输出流)

20.java io系列20之 PipedReader和PipedWriter

21.java io系列21之 InputStreamReader和OutputStreamWriter

22. java io系列22之 FileReader和FileWriter

23.java io系列23之 BufferedReader(字符缓冲输入流)

24. java io系列24之 BufferedWriter(字符缓冲输出流)

25. java io系列25之 PrintWriter (字符打印输出流)

26. java io系列26之 RandomAccessFile

相关文章

  • IO系统

    IO流简单来说就是输入流和输出流。,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,...

  • IO系统

    内容梗概: Java流式输入/输出的原理 Java流类的分类 输入/输出流类 常见的节点流和处理流 文件流 缓冲流...

  • 软件架构设计-操作系统

    操作系统 直接IO与缓冲IO 缓冲io又称作标准I/O,大多数文件系统的默认IO操作都是缓冲IO。在linux的缓...

  • 高性能IO模型与线程模型

    IO模型 linux系统实现IO通信,主要是依靠几个系统调用函数实现的: recvFrom实现非阻塞和阻塞IO,该...

  • Linux系统编程(open, read, write)

    大纲 一、系统调用的文件IO 系统的文件IO和C标准的IO的不同 图解大纲C标准的在用户空间,系统调用的在内核空间...

  • Java IO 总结

    Java IO 总结 概述 IO 即输入输出输出系统,常见的操作系统,需要面对的介质非常之多,常见的IO介质有: ...

  • Java IO 系统

    阻塞式I/O模型 BIO 阻塞,当进程在等待数据时,若该数据一直没有产生,则该进程将一直等待,直到等待的数据产生为...

  • 系统IO模型

    系统IO模型 什么是IO 我们在学计算机基础的时候,一定学习过计算机由哪五部分组成,那就是控制器、运算器、存储器、...

  • 缓存IO与直接IO

    文件系统IO分为DirectIO和BufferIO,其中BufferIO也叫Normal IO。 1. 缓存IO ...

  • Reactor 与Proactor

    按照posix标准,系统io分为同步io和异步io两种,其中同步io常用的是bio nio。异步io有aio。 从...

网友评论

      本文标题:IO系统

      本文链接:https://www.haomeiwen.com/subject/ghvkoftx.html