数据流基础知识

Java程序使用流进行数据的输入输出操作,java.io包提供多种流类和接口。InputStream和OutputStream作为字节流的基类,Reader和Writer为字符流的基类。流分为字节输入/输出流、字符输入/输出流、文件流、数组流、管道流、字符串流、缓冲流、转换流、对象流、装饰流和打印流等。常用方法包括read()、write()、close()等,用于读取、写入和关闭流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java程序中,对于数据的输入输出操作以“流”( stream )的方式进行。java . io包下提供了各种“流”的类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。

  Java的输入输出流体系提供了几十个类,下面按照功能将常用流进行分类梳理,如表1所示。

Java输入输出流体系中常用的流分类
分类字节输入流字节输出流字符输入流字符输出流
抽象父类InputStreamOutputStreamReaderWriter
访问文件FileInoutStreamFileOutStreamFileReaderFileWriter
访问数组ByteArrayInputStreamByteArrayOutStreamCharArrayReaderCharArrayWriter
访问管道PipedInputStreamPipedOutStreamPipedReaderPipedWriter
访问字符串  StringReaderStringWriter
缓冲流BufferedInputStreamBufferedOutStreamBufferedReaderBuferedWriter
转换流  InputStreamReaderOutputStreamWriter
对象流ObjectInputStreamObjectOutputStream  
装饰流FileterInputStreamFileterOutputStreamFileterReaderFileterWriter
打印流 PrintStream PrintWriter
数据过滤流DataInputStreamDataOutputStream  

 

InputStream和Reader是所有遍入流的基类,OutputStream和Xriter是所有输出道的是F类S和Sm是字节流的抽象父类,以字节为单位进行VO操作,Rowts和Writer是字符流的抽象父类,以字符为单位进行I/O操作。资源。

( 1 ) InputStream类

InputStream用来表示那些从不同数据源产生输入的类,这些数据源包括字节数组void write ( in void write ( ( ByteArrayInputStream )、字符串( StringBufferlnputStream )、文件( FileInputStream )、管道void write ( ( PipedInputStream )、流序列( SequenceInputStream )以及网络连接。InputStream类中定义的几种常用的方法:

①int read ( ),从输入流中读取数据的一个字节,返回0~255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回值为- 1。

②int read ( byte [ ] b ),从输入流中将最多b. length个字节的数据读入一个byte数组中,到指定输出流以整数形式返回实际读取的字节数。如果因为已经到达流末尾而没有可用的字节,则返回值void f为- 1。

③int read ( byte [ ] b , int off , int len ),将输入流中最多len个数据字节读入byte数组。资源。尝试读取len个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。如果因为流位于文件末尾而没有可用的字节,则返回值为- 1。

④public void close ( ) throws IOException,关闭此输入流并释放与该流关联的所有系统资源。


( 2 ) OutputStream类OutputStream表示输出要去往的目标,如字节数组( ByteArayOutputStream )、文件(FileOutStream)或者管道( PisOutputstram )。OutputStream共中定义的几种能用力法

①void write ( int b ),将指定的字节写入此输出流。要写人的字节是参数b的8个低位,b的24个高位将被忽略,即写入范围为0-255。

② void write ( byte [ ] b ),将b. length个字节从指定的byte数组写入此输出流。

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

④public void flush ( ) throws IOException ,刷新此输出流并强制写出所有缓冲的输出字节,调用此方法指示将这些字节立即写入它们预期的目标。

⑤public void close ( ) throws IOException ,关闭此输出流并释放与该流关联的所有系统全选资源。


( 3 ) Reader类恢复查找C C Reader类中定义了以下几个常用的方法:

①int read ( ),从输入流中读取单个字符。Java采用Unicode编码为每个字符分配2字丁印节的存储空间,故read()方法将返回读取的2字节字符数据的Unicode编码。如果已到达流的末尾,则返回- 1。

②int read ( char [ ] cbuf ),从输入流中最多读取cbuf. length个字符的数据,并将其存储在字符数组cbuf中,返回实际读取的字符数。如果已到达流的末尾,则返回- 1。

③int read ( char [ ] cbuf , int off , int len ),从输入流中最多读取len个字符的数据,并将其存储在字符数组cbuf中,从数组的off位置开始存储。如果已到达流的末尾,则返回- 1。

④public void close ( ) throws 1OException ,关闭此输入流并释放与该流关联的所有系统资源。


( 4 ) Writer类Writer类中定义以下几个常用方法:

①void write ( int c ),将单个指定字符输出到指定的输出流。

②void write ( char [ ] cbuf ),将字符数组cbuf中的数据输出到指定的输出流。

③void write ( char [ ] cbuf , int off , int len ),将字符数组cbuf从off位置开始的len个字符输出到指定流。

④void write ( String str ),将str字符串中的字符输出到指定输出流。

⑤void write ( String str , int off , int len ),将str字符串中从off位置开始的len个字符输出到指定输出流。

⑥void flush ( ),刷新该流的缓冲。

⑦public void close ( ) throws IOException ,关闭此输出流并释放与该流关联的所有系统资源。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

意Apr-hy25

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值