首页 > 如何通过java实现文件下载并计算进度

如何通过java实现文件下载并计算进度

业务场景如下:
有一个java程序需要去网站上面下载一个大文件的数据包(400M),我需要在控制台打印出当前下载的进度,百分比或者时间之内的,不知道有没有办法实现。或者有现成的第三方下载的jar可以实现该功能没有。谢谢


拿到HttpResponse后读取 content-length 头,

读取InputStream的时候根据已经读取到的byte数,算出百分比就行了。

糙版代码:

private static void readAndPrintProgress(InputStream is, int len)
            throws IOException {
        int sizeRead = 0;
        byte[] buffer = new byte[1024];

        int tmpSize = 0;
        do {
            sizeRead += tmpSize;
            System.out.println((sizeRead * 100 / len) );
            tmpSize = is.read(buffer);
        } while (tmpSize > 0);
    }
【热门文章】
【热门文章】