的方法如下:
以下是一个示例代码,演示如何通过URL下载文件并提取文件名:
public class FileDownloader {
public static void downloadFile(String fileUrl) {
try {
URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// 获取文件名
String fileName = getFileNameFromUrl(fileUrl);
// 创建文件保存路径
String savePath = Environment.getExternalStorageDirectory().getPath() + "/" + fileName;
File file = new File(savePath);
// 打开输入流和输出流
InputStream inputStream = connection.getInputStream();
FileOutputStream outputStream = new FileOutputStream(file);
// 读取数据并保存到文件
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// 关闭输入流和输出流
outputStream.close();
inputStream.close();
// 下载完成
Log.d("FileDownloader", "文件下载成功:" + savePath);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getFileNameFromUrl(String fileUrl) {
String fileName = "";
try {
// 提取URL中的文件名
fileName = URLUtil.guessFileName(fileUrl, null, null);
// 解码文件名
fileName = URLDecoder.decode(fileName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return fileName;
}
}
使用示例:
String fileUrl = "https://example.com/files/myfile.txt";
FileDownloader.downloadFile(fileUrl);
在上述示例代码中,我们使用URLUtil.guessFileName()
方法来提取URL中的文件名,并使用URLDecoder.decode()
方法进行解码。下载的文件将保存在外部存储器的根目录下,并在日志中打印出保存路径。
注意:在实际应用中,需要进行网络权限和存储权限的申请,并处理相关的异常情况,例如网络连接错误或文件保存失败等。
领取专属 10元无门槛券
手把手带您无忧上云