Java中IO框架——FileInputStream源码解析

本文深入探讨了Java中的FileInputStream类,详细解析了其继承自InputStream的重要属性、构造函数和核心方法,包括read()、带参数的read操作以及close()和finalize()等。通过对这些方法的分析,帮助读者理解FileInputStream在文件输入流操作中的工作原理。
摘要由CSDN通过智能技术生成

FileInputStream 继承于 InputStream 类。
可以参考 InputStream 的源码:http://blog.csdn.net/yx0628/article/details/79343633

属性

    // 文件描述类,处理打开的文件
    private final FileDescriptor fd;
    // 文件的路径,如果该流是通过文件描述类创建的,该属性则为空
    private final String path;
    // 用于读、写、映射、操作文件的通道
    private FileChannel channel = null;
    // 一个关闭锁,只在close()方法中使用,确保多线程同步调用,同时和其他同步方法不冲突(因为这个关闭锁是自己的对象锁)
    private final Object closeLock = new Object();
    // 流是否是关闭的,volatile保证多线程的可见性
    private volatile boolean closed = false;

构造函数

    // 文件路径创建File对象,并调用下边的重载的构造函数
    public FileInputStream(String name) throws FileNotFoundException {
        this(name != null ? new File(name) : null);
    }

    // 根据File对象来构造文件输入流
    public FileInputStream(File file) throws FileNotFoundException {
        // 获取文件路径
        String name = (file != null ? file.getPath() : null);
        // 获取系统的安全管理器
        SecurityMa
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值