zoukankan      html  css  js  c++  java
  • Java从URL下载文件

    Java从URL下载文件

    使用java.net.URL openStream()方法从java程序中的URL下载文件。也可以使用Java NIO Channels或Java IO InputStream从URL打开流中读取数据,然后将它保存到文件中。
    下面是从指定URL下载的简单Java程序。它演示了如何在java中从指定URL下载文件的两种方法。

    import java.io.BufferedInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.URL;
    import java.nio.channels.Channels;
    import java.nio.channels.ReadableByteChannel;
    
    public class JavaDownloadFileFromURL {
    
        public static void main(String[] args) {
            String url = "https://www.yiibai.com/index.html";
    
            try {
                downloadUsingNIO(url, "D:/users/maxsu/sitemap.xml");
    
                downloadUsingStream(url, "D:/users/maxsu/sitemap_stream.xml");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private static void downloadUsingStream(String urlStr, String file) throws IOException{
            URL url = new URL(urlStr);
            BufferedInputStream bis = new BufferedInputStream(url.openStream());
            FileOutputStream fis = new FileOutputStream(file);
            byte[] buffer = new byte[1024];
            int count=0;
            while((count = bis.read(buffer,0,1024)) != -1)
            {
                fis.write(buffer, 0, count);
            }
            fis.close();
            bis.close();
        }
    
        private static void downloadUsingNIO(String urlStr, String file) throws IOException {
            URL url = new URL(urlStr);
            ReadableByteChannel rbc = Channels.newChannel(url.openStream());
            FileOutputStream fos = new FileOutputStream(file);
            fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
            fos.close();
            rbc.close();
        }
    
    }
    

    downloadUsingStream:在这个从URL下载java文件的方法中,使用URL openStream方法来创建输入流。然后使用文件输出流从输入流中读取数据并写入文件。
    downloadUsingNIO:在这个URL方法的下载文件中,从URL流数据创建字节通道。然后使用文件输出流将其写入文件。

  • 相关阅读:
    微服务架构设计和应用
    Jenkins持续部署
    Jenkins服务器维护
    Jenkins管理插件(备份插件)
    Jenkins安全
    Jenkins分布式构建
    Jenkins报表 代码 指标分析
    Jenkins远程测试
    Jenkins邮件通知
    Jenkins自动化测试
  • 原文地址:https://www.cnblogs.com/cnsyear/p/13229686.html
Copyright © 2011-2022 走看看