Java中的流概述

一、流概述

流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种。I/O流提供了一条通道程序,可以使用这条通道把源中的字节送到目的地。虽然I/O流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器等。

输入模式:

输出模式:

 

二、输入/输出流

Java语言定义了许多类专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。

1、输入流

InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类的具体层次结构如下:

扫描二维码关注公众号,回复: 9573586 查看本文章

该类的一些常用方法如下:

(1)read()方法:从输入流中读取数据的下个字节。返回0-255范围内的int字节值。到达流末尾,则返回-1

(2)read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数

(3)mark(int readimit()):在输入流的当前位置放置标记,readimit表示输入流在标记位置失效前允许读取的字节数

(4)reset():将输入指针返回当前所做的标记处

(5)skip(long n):跳过输入流上的n个字节并返回实际跳过的字节数

(6)markSupported():如果当前流支持mark()/reset()操作就返回True

(7)close():关闭输入流并释放与该流关联的所有系统资源

Java中的字符是Unicode编码,是双字节的。InputStream是用来处理字节的,并不适合处理字符文本。Java为字符文本的输入专门提供了一套单独的类Reader,但Reader类并不是InputStream的替换者。Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。Reader类的层次结构如下:

2、输出流

OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。该类的层次结构如下:

OutputStream类中的所有方法均返回void,常用方法如下:

(1)write(int b):将指定的字节写入此输出流

(2)write(byte[] b):将b个字节从指定的byte数组写入此输出流

(3)write(byte[] b,int off,int len):将指定的byte数组中从偏移量off开始的len个字节写入到输出流

(4)flush():彻底完成输出并清空缓存区

(5)close():关闭输出流

Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类,层次结构如下:

 

 

发布了61 篇原创文章 · 获赞 1 · 访问量 1326

猜你喜欢

转载自blog.csdn.net/qq_29440983/article/details/103850515