开发者学堂课程【Java 高级编程:InputStream 字节输入流】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/311
InputStream 字节输入流
目录:
一、OutputStream 类的定义
二、InputStream 类的核心方法
三、读取方式
四、对于字节输入流里面最为麻烦的问题
五、注意事项
一、OutputStream 类的定义
与 OutputStream 类对应的一个流就是字节输入流,InputStream 类主要实现的就字节数据读取,该类定义如下:
Public abstract class InputStream
Extends Objetc
implements Closeable
二、InputStream类的核心方法:
在 InputStream 类里面定义了如下的几个核心方法:
No |
方法名称 |
类型 |
|
01 |
public abstract int read) throws IOException |
普通 |
读取单个字节数据,如果现在已经读取到底了,返回-1 |
02 |
public int read(byte[] b) throws IOException |
普通 |
的个数,如果没有数据读取,已经读取到底了,则返回-1 |
03 |
public int read(byte[] b, int off, int len) throws
IOException |
普通 |
读取一组字节数据,只占数组的部分 |
三、读取方式
1、01类方式
2、02类方式
3、03类方式
(1)InputStream 类属于一个抽象类,这时应该依靠它的子类来实例化对象,如果要从文件读取,则一定要使用 FileInputStream 子类,对于子类而言,只关心父类对象实例化,构造方法:
PublicFileinputStream(Filefile)throwsFileNotFoundException.
(2)范例:读取数据
四、字节输入流里面最为麻烦的问题
对于字节输入流里面最为麻烦的问题就在于:使用 read() 方法读取的时候只能够以字节数组为主进行接收。
五、注意事项
1、特别需要注意的是从 JDK1.9 开始在 InputStream 类里面增加了一个新的方法:
Public byte[]read AllBytes()throw IOException.
2、范例:新方法
如果你现在要读取的内容很大很大的时候,那么这种读取直接搞死你的程序。