JAVA集锦--IO流梳理(一)

概念

IO,Input和Output的简写,即输入输出,因此IO流就是Input Output流。IO流相当于一个数据管道,主要用来

处理设备之间的数据传输。

原理

输入、输出都是相对于程序本身来讲的。从文件中读取数据输出到程序中即为输入流,例如从数据库中查询一条

用户信息。 从程序中将数据保存到文件中为输出流,例如向数据库中添加一条用户信息。

IO流工作原理示例图

分类

Java.io中定义了多个流类型来实现输入/输出功能,从不同的角度进行分类后如下:

按照数据流的方向不同:输入流和输出流

按照处理数据单位不同:字节流和字符流

按照实现功能类型不同:节点流和处理流

注意

字节流是最基本的,它的所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节

来处理的。但实际中很多的数据都是文本,所以有了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字

符集的转化。

从上面一段文字,字节流和字符流的主要区别是什么呢?

1)字节流在操作时不会用到缓冲区(内存),直接对文件本身进行操作。而字符流在操作时使用了缓冲区,通过缓

冲区再操作文件。

2)真正存储和传输数据时都是以字节为单位的,在硬盘上的所有文件(图片,声音,视频等等)都是以字节形式存

在的,字符只是存在于内存当中的。所以,字节流适用范围更为宽广

其中输入输出流和字节字符流根据它们的定义很容易理解。简单介绍下节点流和处理流。在下篇文章中会做详细

介绍。

IO流分类整合导图

IO流分类整合导图(1)

IO流分类整合导图(2)

总结

IO流是在设备之间传输数据用的。结合生活中的实例,将一根水管一头插在水桶中,另外一头插在水池中。当我

们需要向水池中存储水的时候,就需要通过中间的水管将一桶桶的水倒入水池中。当需要用水的时候同样需要通过中

间的水管从水池中吸水到水桶中。

等价划分到我们的IO流中:

水管------------------流

水流------------------数据流

水池-------------------文件

水桶-------------------程序

化抽象为具体,这样一来是不是容易理解多了呢?

时间: 2024-10-13 15:45:46

JAVA集锦--IO流梳理(一)的相关文章

Java之IO流---字节流

1.1 IO流的引入 IO流在很多语言已有体现,诸如C语言的stdio.h,C++中的iostream.Java中的IO流大抵是用于在控制台.磁盘.内存上进行数据的读写操作,完成数据的传递. 我们可以对它进行如下分类: 按处理的数据类型可分为字节流与字符流 按流的流向可分为输入流(in)与输出流(out) 按流的功能可分为节点流(Node)和过滤流(Filter) 本篇侧重于梳理字节流相关的知识,毕竟作为字符流的前辈,它还是非常重要的.下篇继续梳理字符流. 1.2 IO流的继承体系图 大概描述了

java常用IO流数据流小结

  类名 常用方法 说明 输入流 InputStream int read(); 只能读字节流,虽然返回值是int,但只有低8位起作用. DataInputStream Type readType(); 可以读二进制流,可以读byte,short,int,long,double等二进制流. BufferedReader String readLine(); 可以读文本行. 输出流 OutputStream void write(int); 只能写字节流,虽然形参是int,但只有低8为起作用. D

【Java】IO流简单分辨

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的IO流体系十分庞大,并且体系层次稍复杂,很容易记混或记错.在此,我把平时经常用到的几个流类的简易区分以及体系层次整理出来,方便记忆与辨析.本人对IO了解尚浅,文章如有错漏,恳请前辈指正,感激不尽! 字节流体系: 基类:InputStream/outputStream(抽象类,不能new) 子类: 文件IO字节流:FileInputStream/FileoutputStream

JAVA中IO流总结

本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/42119261 我想你对JAVA的IO流有所了解,平时使用的也比较的多,但是对于其具体分类和继承体系可能知道的并不多,可能也很少去看相关的API文档,找出其中的关系和各自的应用情形.本文简单对常用的IO流进行分类整理,并简单举例说明其应用.希望本文对你有所帮助. (A)IO流大致分为两种: (1)字节流:对应抽象类为InputStream(输入流)和 OutputStream(输

【JAVA的 IO流之FileInputStream和FileOutputStream】

java的 IO流即输入输出流,流是一组有顺序的,有起点和终点的字节结合,是对数据传输的总称.即数据在两设备间的传输称为流,流的本质是数据传输. IO流可以分为字节流和字符流.给出相应的IO结构图: 在接下来的一段时间里,将会慢慢介绍各种流的使用,本篇博客先介绍字节流的FileOutputStream和相对应的FileInputStream. 一.FileOutputStream(文件输出流) OutputStream是一个抽象类,抽象类必须通过子类实现.现在要向文件里输出就要用FileOutp

java的IO流,字节流和字符流

java操作文件都是通过流来处理的,(其实其他很多语言也是这样) 第一:java的IO流,分为:输入流 和 输出流(这真是废话,这是从流向的角度来说的) 第二:java的所有IO流,只分为:字节流 和 字符流(其实就是传输的颗粒,传输的基本单位) 总结:凡是处理纯文本的优先考虑字符流:其他的才考虑使用字节流

Java笔记-IO流的运用

1.InputStream和System.in(Scanner) InputStream 输出流以字节为单位来获取数据,且需要复杂的判断并创建字节数组作为缓冲 另外字节转换为字符时容易出现中文乱码的情况:Scanner Java扫描器类,可以从输入流中读取指定类型的数据或字符串. 对于字符数据的读取,应该使用Scanner扫描器进行封装,然后获取字符串类型的数据 2. out和err out和err是System类的两个static类成员变量: out:主要是输出调试信息的输出流,以黑色显示 e

java的Io流学习

Java中io流的学习(一)File:https://blog.csdn.net/qq_41061437/article/details/81672859 Java中io流的学习(二)FileInputStream和FileOutputStream:https://blog.csdn.net/qq_41061437/article/details/81742175 Java中io流的学习(三)BuffereInputStream和BuffereOutputStream:https://blog.

Java之IO流用法总结

Java的IO流概述:1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读/写文件,网络通讯等.2.Java程序中,对于数据的输入/输出操作以“流(stream)” 的方式进行.3.java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据. IO流的分类:1.按操作数据单位不同分为:字节流(8 bit), 字符流(16 bit).2.按数据流的流向不同分为:输入流,输出流.3.按流的角色的不同分为:节点