JDK源码:FileInputStream
Posted jdkSpring
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK源码:FileInputStream相关的知识,希望对你有一定的参考价值。
FileInputStream从文件系统中的文件获取输入字节。哪些文件可用取决于主机环境,FileInputStream用于读取原始字节流,如图像数据。要读取字
符流,请考虑使用FileReader。
在创建一个FileInputStream文件输入流时,主要做了两件事,一个是new一个FileDescriptor(文件描述符),一个便是调用了open方法。
不过在此之前,还调用了一个方法,在FileInputStream源码的下方,有这样一个静态块。
private static native void initIDs();
static {
initIDs();
}
类名
public
class FileInputStream extends InputStream
成员变量
/* 打开文件的句柄,用来表示开放文件、开放套接字等 */
private final FileDescriptor fd;
/**
* 引用文件的路径
* (如果流是用文件描述符创建的,则为空)
*/
private final String path;
//用于读取、写入、映射和操作文件的通道
private FileChannel channel = null;
//关闭时的同步锁
private final Object closeLock = new Object();
private volatile boolean closed = false;
方法
FileInputStream(String name)
FileInputStream(File file)
read()
read调用底层native方法read0()
read(byte b[])
read(byte b[])调用底层native方法readBytes(byte b[], int off, int len)
close()
此类中的很多方法都是native方法,在jdk中无法看到源码,读者可以下载openJDK源码查看native源码。
代码注释
案例
以上是关于JDK源码:FileInputStream的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段