写点什么

22《重学 JAVA》-- 字节流

作者:杨鹏Geek
  • 2021 年 12 月 23 日
  • 本文字数:769 字

    阅读完需:约 3 分钟

22《重学JAVA》--字节流

一、IO 流描述

Java 将数据的输入输出(I/O)操作当作“流”来处理,“流”是一组有序的数据序列。


“流”分为两种形式:输入流和输出流,从数据源中读取数据是输入流,将数据写入到目的地是输出流。


以 CPU 为中心,从外部设备读取数据到内存,进而再读入到 CPU,这是输入(Input,缩写 I)过程;将内存中的数据写入到外部设备,这是输出(Output,缩写 O)过程。所以输入输出简称为 I/O。


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

输出流:只能向其写入数据,而不能向其读取数据。

一、字节输入流描述

InputStream 是字节输入流的根类,它定义了很多方法,影响着字节输入流的行为。

 

InputStream 主要方法如下:

 

intread():读取一个字节,返回 0 到 255 范围内的 int 字节值。如果已经到达流末尾,而且没有可用的字节,则返回值-1。

 

intread(byteb[]):读取多个字节,数据放到字节数组 b 中,返回值为实际读取的字节的数量,如果已经到达流末尾,而且没有可用的字节,则返回值-1。

 

intread(byteb[],intoff,intlen):最多读取 len 个字节,数据放到以下标 off 开始字节数组 b 中,将读取的第一个字节存储在元素 b[off]中,下一个存储在 b[off+1]中,依次类推。返回值为实际读取的字节的数量,如果已经到达流末尾,而且没有可用的字节,则返回值-1。

 

voidclose():流操作完毕后必须关闭。

二、字节输出流描述

OutputStream 主要方法:

 

voidwrite(intb):将 b 写入到输出流,b 是 int 类型占有 32 位,写入过程是写入 b 的 8 个低位,b 的 24 个高位将被忽略。

 

voidwrite(byteb[]):将 b.length 个字节从指定字节数组 b 写入到输出流。

 

voidwrite(byteb[],intoff,intlen):把字节数组 b 中从下标 off 开始,长度为 len 的字节写入到输出流。

 

voidflush():刷空输出流,并输出所有被缓存的字节。

 

voidclose():流操作完毕后必须关闭。

 

上述所有方法都声明抛出 IOException,因此使用时要注意处理异常。

发布于: 1 小时前阅读数: 5
用户头像

杨鹏Geek

关注

你必须比别人更努力 才能看起来毫不费力! 2019.10.26 加入

码农

评论

发布
暂无评论
22《重学JAVA》--字节流