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流数据创建字节通道。然后使用文件输出流将其写入文件。

  • 相关阅读:
    SpringBoot项目启动Gzip压缩
    Docker学习(一)
    MySQL中text类型说明
    java MultipartFile多文件上传/通过文件夹解析所有文件
    java后端处理跨域
    SpringCloud Feign调用服务接口时,GET请求变成POST请求报错
    java8 LocalDateTime/LocalDate 获取各种日期类型
    IDEA 不能输入中文
    基于docker 搭建minio 文件服务器
    MySql数据库导入sql错误 Unknown collation: 'utf8mb4_0900_ai_ci'
  • 原文地址:https://www.cnblogs.com/cnsyear/p/13229686.html
Copyright © 2011-2022 走看看