帮我写一个通用文件下载工具类要求语言java
时间: 2023-05-30 12:01:36 浏览: 69
以下是一个简单的通用文件下载工具类的示例,可以用于下载任何类型的文件:
```
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
public class FileDownloader {
public static void downloadFile(String fileURL, String saveDir) throws IOException {
URL url = new URL(fileURL);
URLConnection conn = url.openConnection();
conn.connect();
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
File file = new File(saveDir);
if (!file.exists()) {
file.mkdirs();
}
String fileName = getFileName(conn);
FileOutputStream out = new FileOutputStream(file + File.separator + fileName);
byte[] data = new byte[1024];
int count;
while ((count = in.read(data, 0, 1024)) != -1) {
out.write(data, 0, count);
}
out.flush();
out.close();
in.close();
System.out.println("File downloaded successfully!");
}
private static String getFileName(URLConnection conn) {
String fileName = "";
String contentDisposition = conn.getHeaderField("Content-Disposition");
if (contentDisposition != null && contentDisposition.indexOf("filename=") != -1) {
fileName = contentDisposition.substring(contentDisposition.indexOf("filename=") + 9).replace("\"", "");
} else {
fileName = conn.getURL().getFile();
fileName = fileName.substring(fileName.lastIndexOf("/") + 1);
}
return fileName;
}
}
```
使用方法:
```
String fileURL = "http://example.com/file.txt";
String saveDir = "/path/to/save/directory";
FileDownloader.downloadFile(fileURL, saveDir);
```
其中,`fileURL`是要下载的文件的URL,`saveDir`是要保存到的本地目录。这个工具类会自动从URL中获取文件名,并将文件保存到指定目录中。如果指定的目录不存在,则会自动创建。下载完成后会在控制台输出提示信息。