首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Java优化下载速度

使用Java优化下载速度
EN

Stack Overflow用户
提问于 2013-03-19 19:29:20
回答 1查看 1.2K关注 0票数 0

我在java中有一个方法,可以从web上下载文件,但是通过java代码下载比我使用任何浏览器下载都要慢。

我的代码如下:

代码语言:javascript
运行
复制
 public void downloadFile(String downloadURL) {


            System.out.println("Starting file download .....");


            BufferedInputStream in = null;
            FileOutputStream fout = null;
            try {
                URL u = new URL(downloadURL);
                HttpURLConnection uc = (HttpURLConnection) u.openConnection();
                String fileName = uc.getHeaderField("Content-Disposition");
                fileName = YouTubeDownloader.parseResponse(fileName, "filename=\"", "\"");
                System.out.println(fileName);

                if (uc.getHeaderField("Content-Length") == null) {
                    System.out.println("File Length zero!!!!");

                }




                float fileSize = Float.parseFloat(uc.getHeaderField("Content-Length"));

                in = new BufferedInputStream(uc.getInputStream());

                System.out.println("File size : " + fileSize);


                fout = new FileOutputStream("c:\\Dinesh\\" + fileName);

                byte data[] = new byte[1024];
                int count = 0;
                int downloaded = 0;
                while ((count = in.read(data, 0, 1024)) != -1) {

                    downloaded += count;
                    int downloadPercentage = (int) ((downloaded / fileSize) * 100);
                    System.out.println(downloadPercentage);
                    fout.write(data, 0, count);
                }

                System.out.println("File download completed.....");

            } catch (Exception e) {
                System.out.println(e);
            }
    }

下载速度太慢是不是因为缓冲区太小了?

我是否可以增加缓冲区大小,或者如何优化以降低下载速度?

我需要修改什么东西?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-03-20 20:45:47

如果您不需要监控进度,请尝试以下操作:

代码语言:javascript
运行
复制
Path saveFile = Paths.get("C:\\Dinesh", fileName);
Files.copy(uc.getInputStream(), saveFile);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15498246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档