判断文件是否写入完毕

在对文件进行读取,复制等操作前,往往需要去判断文件是否已经完全写入完毕,如果这个文件的写入操作是在你自己写的代码里,那么可以通过自己添加一些标志位来获取当前文件的写入状态,但是如果文件的写操作并非是你的代码去控制的,比如是系统dump hprof文件,那么应该怎么去判断hprof文件已经写入完毕呢?

下面的方式可以判断文件是否读写完毕,基本思想就是投机取巧的用了文件的长度,如果不再涨那么就判断写入完成了

/**
     * 等待文件(非目录)读写完毕,费时的操作,不要放在主线程
     *
     * @param file 文件
     */
    private void waitForWirtenCompleted(File file) {
        if (!file.exists())
            return;
        long old_length;
        do {
            old_length = file.length();
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Log.i("waitForWirtenCompleted: ", old_length + " " + file.length());

        } while (old_length != file.length());
    }


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值