Java代码如何从Internet下载文件呢?

乔欣 Java经验 发布时间:2023-02-06 16:45:18 阅读数:4367 1
下文笔者讲述使用java代码从网络上下载文件的方法分享,如下所示

java从网络上下载文件的写法

实现思路:
  方式1:
	Apache Commons IO
	 org.apache.commons.io.FileUtils
    //int = number of milliseconds
     public static void copyURLToFile(URL source, File destination,
            int connectionTimeout, int readTimeout) throws IOException
  方式2:
    Java NIO
	 URL website = new URL(fromFile);
	ReadableByteChannel rbc = Channels.newChannel(website.openStream());
	FileOutputStream fos = new FileOutputStream(toFile);
	fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
	fos.close();
	rbc.close();

例:
Apache Commons IO从URL上下载文件的示例分享

Apache Commons IO从网络上下载文件的示例

1.引入依赖

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.5</version>
</dependency>

//2.编写相应的代码
HttpUtils.java

package com.java265;
 
import org.apache.commons.io.FileUtils;
 
import java.io.File;
import java.io.IOException;
import java.net.URL;
 
public class HttpUtils {
 
    public static void main(String[] args) {
 
        String fromFile = "http://java265.com/test.log";
        String toFile = "D:\\test.log";
 
        try {
            //connectionTimeout, readTimeout = 10 seconds
            FileUtils.copyURLToFile(new URL(fromFile), new File(toFile), 10000, 10000);
 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
    }
}

Java NIO示例

  
package com.java265;
 
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
public class HttpUtils {
    public static void main(String[] args) {
 
        String fromFile = "http://java265.com/test.log";
        String toFile   = "D:\\test.log";
 
        try {
 
            URL website = new URL(fromFile);
            ReadableByteChannel rbc = Channels.newChannel(website.openStream());
            FileOutputStream fos = new FileOutputStream(toFile);
            fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
            fos.close();
            rbc.close();
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16756731565684.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者