Java 下载文件并获取文件名
引言
在Java开发中,经常会遇到需要下载文件并获取文件名的情况。本文将介绍如何使用Java实现下载文件并获取文件名的方法,帮助刚入行的小白快速上手。
整体流程
以下是实现“Java下载文件并获取文件名”的整体流程:
erDiagram
下载文件 -->> 获取文件名: 1. 调用下载方法
获取文件名 -->> 下载文件: 2. 返回文件名
步骤详解
步骤1:调用下载方法
首先,我们需要调用下载方法来下载文件。以下是下载方法的代码及注释:
public void downloadFile(String fileUrl, String savePath) {
try {
// 创建URL对象
URL url = new URL(fileUrl);
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方式为GET
conn.setRequestMethod("GET");
// 连接超时时间为5秒
conn.setConnectTimeout(5000);
// 获取输入流
InputStream inputStream = conn.getInputStream();
// 创建文件输出流
FileOutputStream fos = new FileOutputStream(savePath);
// 缓冲区大小
byte[] buffer = new byte[1024];
int len;
// 循环读取输入流并写入输出流
while ((len = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
// 关闭资源
fos.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
步骤2:返回文件名
接下来,我们需要从下载的文件路径中提取文件名。以下是获取文件名的代码及注释:
public String getFileName(String filePath) {
// 使用File类创建文件对象
File file = new File(filePath);
// 获取文件名
String fileName = file.getName();
return fileName;
}
完整示例代码
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class FileDownloader {
public static void main(String[] args) {
String fileUrl = "
String savePath = "C:/Downloads/file.pdf";
FileDownloader fileDownloader = new FileDownloader();
fileDownloader.downloadFile(fileUrl, savePath);
String fileName = fileDownloader.getFileName(savePath);
System.out.println("下载的文件名为:" + fileName);
}
public void downloadFile(String fileUrl, String savePath) {
try {
// 创建URL对象
URL url = new URL(fileUrl);
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方式为GET
conn.setRequestMethod("GET");
// 连接超时时间为5秒
conn.setConnectTimeout(5000);
// 获取输入流
InputStream inputStream = conn.getInputStream();
// 创建文件输出流
FileOutputStream fos = new FileOutputStream(savePath);
// 缓冲区大小
byte[] buffer = new byte[1024];
int len;
// 循环读取输入流并写入输出流
while ((len = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
// 关闭资源
fos.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getFileName(String filePath) {
// 使用File类创建文件对象
File file = new File(filePath);
// 获取文件名
String fileName = file.getName();
return fileName;
}
}
总结
通过以上步骤,我们可以实现Java下载文件并获取文件名的功能。首先,使用URL
和HttpURLConnection
来下载文件,并将文件保存到指定路径;然后,使用File
类来提取路径中的文件名。通过这种方式,我们可以轻松地实现文件下载和文件名获取的功能。
希望本文能帮助刚入行的小白快速上手Java下载文件并获取文件名的方法。如果在实践过程中遇到任何问题,请随时查阅Java官方文档或参考相关资源。祝你编程愉快!