用java写一个下载管理器,自动识别需要下载的链接
时间: 2024-03-08 18:49:04 浏览: 13
以下是一个简单的Java下载管理器示例代码,可以自动识别需要下载的链接:
```
import java.io.InputStream;
import java.io.FileOutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Scanner;
public class DownloadManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取用户输入的链接
System.out.print("请输入需要下载的链接:");
String url = scanner.nextLine();
// 解析文件名
String fileName = url.substring(url.lastIndexOf("/") + 1);
// 读取用户输入的保存路径
System.out.print("请输入保存路径(默认为当前目录):");
String savePath = scanner.nextLine();
if (savePath.equals("")) {
savePath = "./" + fileName;
} else {
savePath += "/" + fileName;
}
try {
// 打开连接
URLConnection conn = new URL(url).openConnection();
// 获取文件大小
int fileSize = conn.getContentLength();
// 创建输入流
InputStream in = conn.getInputStream();
// 创建输出流
FileOutputStream out = new FileOutputStream(savePath);
byte[] buffer = new byte[1024];
int len, downloadedSize = 0;
// 读取数据并写入文件
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
downloadedSize += len;
System.out.printf("下载进度:%d%%\n", downloadedSize * 100 / fileSize);
}
// 关闭流
out.close();
in.close();
System.out.println("下载完成!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
该下载管理器通过Scanner读取用户输入的链接和保存路径,使用URLConnection打开下载文件的连接,获取文件大小并读取数据并将其写入文件。在下载过程中,程序会输出下载进度,以便用户了解下载进度。
需要注意的是,该示例代码仅用于演示下载管理器的基本原理,实际应用中需要考虑更多的异常处理和错误情况。