博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java I/O流详解
阅读量:6631 次
发布时间:2019-06-25

本文共 1263 字,大约阅读时间需要 4 分钟。

  hot3.png

Java中把不同的数据源与程序间的数据传输都抽象表述为"流"(Stream),java.io包中定义了多种I/O流类型实现数据I/O功能。

I/O流分类:

输入流(Input Stream)和输出流(Output Stream)

节点流(Node Stream)和处理流(Processing Stream)

字符流(Character Stream)和字节流(Byte Stream)

输入流和输出流

按照数据流动的方向,java流可分为输入流(Input Stream)和输出流(Output Stream)

输入流只能从中读取数据,而不能向其写出数据;

输出流则只能向其写出数据,而不能从中读取数据

特例:java.io.RandomAccessFile类

节点流和处理流

根据数据流所关联的是数据源还是其他数据流,可分为节点流(Node Stream)和处理流(Processing Stream)

节点流直接连接到数据源

处理流是对一个已存在的流的连接和封装,通过封装的流的功能调用实现增强的数据读/写功能,处理流并不直接连接到数据源.

字符流和字节流

按传输数据的"颗粒大小"划分,可分为字符流(Character Stream)和字节流(Byte Stream)

字节流以字节为单位进行数据传输,每次传送一个或多个字节;

字符流以字符为单位进行数据传输,每次传送一个或多个字符.

Java I/O主要包括如下几个层次:

1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。

3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。

4. Reader(文件格式操作):抽象类,基于字符的输入操作。

5. Writer(文件格式操作):抽象类,基于字符的输出操作。

6. RandomAccessFile(随机文件操作):它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作

Java命名惯例:

凡是以InputStream或OutputStream结尾的类型均为字节流,凡是以Reader或Writer结尾的均为字符流。

InputStream类层次

14193658_QNd9.jpg

OutputStream类层次

Reader类层次

Writer类层次

InputStream ,OutputStream ,Reader,Writer都是抽象类。

更多详细内容和实例代码见:http://fehly.iteye.com/blog/658998

转载于:https://my.oschina.net/mzzyk/blog/401528

你可能感兴趣的文章
聊聊sentinel的SimpleHttpCommandCenter
查看>>
Linux学习笔记第二周第四次课(2月1日)
查看>>
sqlserver用sql语句创建及查询链接服务器所有的数据库、用户和表
查看>>
JAVA for循环
查看>>
https证书一年多少钱?
查看>>
linux Screen的安装与简单应用
查看>>
【前端开发】JSON 完全自学手册
查看>>
iptables
查看>>
记世界上第一台运行图形化用户界面操作系统的微型电脑
查看>>
DEV报表基础教程(二)
查看>>
Spark的transformation 和 action的操作学习笔记
查看>>
socket远程控制(练手)___源码
查看>>
OPPO F9配置曝光 配备6.3英寸19.5:9触摸屏
查看>>
使用Vue.Js结合Jquery Ajax加载数据的两种方式
查看>>
优化IIS7.5支持10万个同时请求的配置方法_win服务器
查看>>
mysql中自连接查询的妙用:推荐人统计
查看>>
c语言代码缩进和空白
查看>>
我学安卓——运行时hook之onClickListener
查看>>
ios面试题1
查看>>
Snort***检测系统安装配置
查看>>