JDK源码:FileInputStream

Posted jdkSpring

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK源码:FileInputStream相关的知识,希望对你有一定的参考价值。

       FileInputStream从文件系统中的文件获取输入字节。哪些文件可用取决于主机环境,FileInputStream用于读取原始字节流,如图像数据。要读取字

符流,请考虑使用FileReader。

    在创建一个FileInputStream文件输入流时,主要做了两件事一个是new一个FileDescriptor(文件描述符),一个便是调用了open方法。

      不过在此之前,还调用了一个方法,在FileInputStream源码的下方,有这样一个静态块。

private static native void initIDs();static { initIDs();}


类名

publicclass 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)


JDK源码(十):FileInputStream

read()


JDK源码(十):FileInputStream

read调用底层native方法read0()

read(byte b[])


JDK源码(十):FileInputStream

read(byte b[])调用底层native方法readBytes(byte b[], int off, int len)

close()


JDK源码(十):FileInputStream

此类中的很多方法都是native方法,在jdk中无法看到源码,读者可以下载openJDK源码查看native源码。

代码注释


案例


以上是关于JDK源码:FileInputStream的主要内容,如果未能解决你的问题,请参考以下文章

阅读JDK源码后,我有了优化它的冲动!

如何进行 Java 代码阅读分析?

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

C# 获得目录创建时间的源码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段