怎么设置internet才能下载JAVA_如何使用Java从Internet下载和保存文件?

我需要获取一个在线文件(例如http://www.example.com/information.asp )并将其保存到目录中。 我知道有几种逐行捕获和读取在线文件(URL)的方法,但是有没有一种方法可以使用Java下载和保存文件?

#1楼

import java.io.*;

import java.net.*;

public class filedown {

public static void download(String address, String localFileName) {

OutputStream out = null;

URLConnection conn = null;

InputStream in = null;

try {

URL url = new URL(address);

out = new BufferedOutputStream(new FileOutputStream(localFileName));

conn = url.openConnection();

in = conn.getInputStream();

byte[] buffer = new byte[1024];

int numRead;

long numWritten = 0;

while ((numRead = in.read(buffer)) != -1) {

out.write(buffer, 0, numRead);

numWritten += numRead;

}

System.out.println(localFileName + "\t" + numWritten);

}

catch (Exception exception) {

exception.printStackTrace();

}

finally {

try {

if (in != null) {

in.close();

}

if (out != null) {

out.close();

}

}

catch (IOException ioe) {

}

}

}

public static void download(String address) {

int lastSlashIndex = address.lastIndexOf('/');

if (lastSlashIndex >= 0 &&

lastSlashIndex < address.length() - 1) {

download(address, (new URL(address)).getFile());

}

else {

System.err.println("Could not figure out local file name for "+address);

}

}

public static void main(String[] args) {

for (int i = 0; i < args.length; i++) {

download(args[i]);

}

}

}

#2楼

Nio的用法更简单:

URL website = new URL("http://www.website.com/information.asp");

try (InputStream in = website.openStream()) {

Files.copy(in, target, StandardCopyOption.REPLACE_EXISTING);

}

#3楼

简单使用存在一个问题:

org.apache.commons.io.FileUtils.copyURLToFile(URL, File)

如果您需要下载并保存非常大的文件,或者通常情况下需要自动重试以防连接断开。

在这种情况下,我建议使用Apache HttpClient以及org.apache.commons.io.FileUtils。 例如:

GetMethod method = new GetMethod(resource_url);

try {

int statusCode = client.executeMethod(method);

if (statusCode != HttpStatus.SC_OK) {

logger.error("Get method failed: " + method.getStatusLine());

}

org.apache.commons.io.FileUtils.copyInputStreamToFile(

method.getResponseBodyAsStream(), new File(resource_file));

} catch (HttpException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

method.releaseConnection();

}

#4楼

这个答案几乎与选择的答案完全一样,但是有两个增强:这是一个方法,它关闭了FileOutputStream对象:

public static void downloadFileFromURL(String urlString, File destination) {

try {

URL website = new URL(urlString);

ReadableByteChannel rbc;

rbc = Channels.newChannel(website.openStream());

FileOutputStream fos = new FileOutputStream(destination);

fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);

fos.close();

rbc.close();

} catch (IOException e) {

e.printStackTrace();

}

}

#5楼

使用Java 7+使用以下方法从Internet下载文件并将其保存到某个目录:

private static Path download(String sourceURL, String targetDirectory) throws IOException

{

URL url = new URL(sourceURL);

String fileName = sourceURL.substring(sourceURL.lastIndexOf('/') + 1, sourceURL.length());

Path targetPath = new File(targetDirectory + File.separator + fileName).toPath();

Files.copy(url.openStream(), targetPath, StandardCopyOption.REPLACE_EXISTING);

return targetPath;

}

文档在这里 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

热榜!基于jsp+mysql的JSP在线水果销售商城系统设计实现【建议收藏】

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 文末获取源码联系方式 &#x1f4dd; 研究意…

java log4j权限被否定_SLF4J简介与使用(整合log4j)

一、概念SLF4J的全称是Simple Logging Facade for Java&#xff0c;即简单日志门面。SLF4J并不是具体的日志框架&#xff0c;而是作为一个简单门面服务于各类日志框架&#xff0c;如java.util.logging, logback和log4j。SLF4J提供了统一的记录日志的接口&#xff0c;对不同日志…

《springcloud超级入门》微服务的概念和优缺点《一》

微服务是什么&#xff1f;它的优缺点有哪些&#xff1f; “微服务”一词来源于 Martin Fowler 的《Microservices》一文。微服务是一种架构风格&#xff0c;即将单体应用划分为小型的服务单元&#xff0c;微服务之间使用 HTTP 的 API 进行资源访问与操作。 在笔者看来&#xf…

安卓 php环境 app,安卓系统lighttpd-php-mysql本地环境

这是一个可在安卓手机上布置的服务器环境&#xff0c;功能组件包括&#xff1a;lighttpd、php和mysql&#xff0c;能成功运行DZ等php程序&#xff0c;安装和配置过程十分简单&#xff0c;也许现在该是讨论用什么手机做服务器更合适的时候了。演示图片为一成功运行的服务器环境探…

硬核!从0到1学习Spring Cloud微服务章节《建议收藏》

为什么要使用学习springcloud以及他的优势&#xff1f; Spring Cloud 来源于 Spring&#xff0c;质量、稳定性、持续性都可以得到保证。 spirng Cloud 天然支持 Spring Boot&#xff0c;更加便于业务落地。 Spring Cloud 是 Java 领域最适合做微服务的框架。相比于其它框架&…

《springcloud超级入门》Spring Cloud是什么?Spring Cloud版本介绍《二》

Spring cloud是一系列框架的有序集合。它利用 Spring Boot 的开发便利性&#xff0c;巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务注册、服务发现、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;这些都可以用 Spring Boot 的开发风格做到一键启动…

《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》

了解为什么需要微服务。最初的服务化解决方案是给相同服务提供一个统一的域名&#xff0c;然后服务调用者向这个域发送 HTTP 请求&#xff0c;由 Nginx 负责请求的分发和跳转。 这种架构存在很多问题&#xff1a;Nginx 作为中间层&#xff0c;在配置文件中耦合了服务调用的逻辑…

php完美导出word,PHP使用phpword生成word文档

使用phpword生成文档有两种方式直接使用代码编写word文档&#xff0c;用代码生成word&#xff0c;但是设置样式&#xff0c;格式&#xff0c;图片非常麻烦&#xff0c;不建议使用。如果客户或产品提供一份word的样式&#xff0c;我们也难以完全复原&#xff0c;调样式很头疼的。…

《springcloud超级入门》Spring Cloud开发环境的准备和Lombok安装步骤《四》

开发环境的准备主要涉及三个方面&#xff1a;JDK、Maven、Spring Tools 4 for Eclipse。 1. JDK JDK 的版本用 1.8 即可&#xff0c;环境变量大家自行去配置。配置好环境变量&#xff0c;在命令行中输入“java–version”能够显示出版本信息即可&#xff0c;如图 1 所示。 …

php 制作ppt,PPT制作三个基本要素是什么?

PPT制作三个基本要素是什么&#xff1f;1、一个PPT只为一类人服务&#xff0c;针对不同听众制作不同层次内容&#xff1b;2、PPT永远是为听者服务&#xff1b;3、PPT只讲一个重点&#xff0c;不要试图在某个PPT中既讲技术&#xff0c;又讲管理。PPT优势1.使用 Microsoft Office…

《springcloud超级入门》Spring Boot简介《五》

Spring Boot 是由 Pivotal 团队提供的全新框架&#xff0c;其设计目的是简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。 Spring Boot 致力于在蓬勃发展的快速应用开发领域&#xff08;rapid …

php代理m3u8,PHP实现m3u8并发下载

直接上代码//php下载m3u8文件$url $argv[1];if(!file_exists(./tmp/)) {if(!mkdir(./tmp/)) {die(请手动在当前目录创建tmp目录);}}$indexPage file_get_contents($url);preg_match_all(/.*.ts/, $indexPage, $matches);if(empty($matches)) {die(m3u8 文件格式错误);}go(fun…

《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Spring Tools 4 for Eclipse 中选择 File->New->Maven Project&#xff0c; 在 pom.xml 中添加 Spri…

《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七》

目录 Spring Boot Starter项目创建 自动创建客户端 使用 Starter 使用注解开启 Starter 自动构建 使用配置开启 Starter 自动构建 配置 Starter 内容提示 Spring Boot 的便利性体现在&#xff0c;它简化了很多烦琐的配置&#xff0c;这对于开发人员来说是一个福音&#…

php 发送短信 sms,php 调用百度sms来发送短信的实现示例

BaiduSms百度云 sms php版本官方没有给出php版本的短信发送sdk, 在此借鉴 [ 点击这里 ]&#xff0c;并在此基础上将方法改成 单例模式 在原来的基础上更加容易调用1.打开 BaiduSms.php 修改 sms函数中 accessKey 、 secretAccessKey 这两个参数登录百度云账号&#xff0c;在右上…

《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》

Spring cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分&#xff0c;基于 Netflix Eureka 做了二次封装&#xff0c;主要负责实现微服务架构中的服务治理功能。 Spring Cloud Eureka 是一个基于 REST 的服务&#xff0c;并且提供了基于 Java 的客户端组件&#xff0c…

php 常用编译参数,php编译参数,不用怕!!

很多初学者&#xff0c;在编译php的时候&#xff0c;容易被php的编译参数吓到&#xff01;例如&#xff1a;./configure \--prefix/usr/local/php \--with-config-file-path/usr/local/php/etc \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-sha…

《SpringCloud超级入门》使用Eureka编写注册中心服务《九》

首先创建一个 Maven项目&#xff0c;取名为 eureka-server&#xff0c;在 pom.xml 中配置 Eureka 的依赖信息&#xff0c;代码如下所示。 <!-- Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot…

php设置表单为整数,PHP中如何判断FROM表单提交的数字是否为整数?

在php开发中我们经常需要用表单传递数据&#xff0c;如果我们传递的是整数(int)&#xff0c;经过表单传递后&#xff0c;在接收页面整数的数值类型将会变成字符串(string)类型,这样我们就不能用is_int()函数来判断是否为整数&#xff0c;但是我们可以用is_numeric()和strpos()函…

《SpringCloud超级入门》使用Eureka编写服务提供者《十》

创建项目注册到 Eureka 将一个服务提供者 eureka-client-user-service 注册到 Eureka 中&#xff0c;并提供一个接口给其他服务调用。 创建一个 Maven 项目&#xff0c;在 pom.xml 中增加相关依赖 <parent> <groupId>org.springframework.boot</groupId> &l…