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下载文件并获取文件名的功能。首先,使用URLHttpURLConnection来下载文件,并将文件保存到指定路径;然后,使用File类来提取路径中的文件名。通过这种方式,我们可以轻松地实现文件下载和文件名获取的功能。

希望本文能帮助刚入行的小白快速上手Java下载文件并获取文件名的方法。如果在实践过程中遇到任何问题,请随时查阅Java官方文档或参考相关资源。祝你编程愉快!