在Java中,可以使用java.net.URL
類和java.nio.file.Files
類來根據文件路徑下載文件。
以下是一個示例代碼:
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
public class FileDownloader {
public static void main(String[] args) {
String fileUrl = "http://example.com/file.txt";
String destinationPath = "C:/download/file.txt";
try {
// 方法1:使用 java.net.URL 和 java.nio.file.Files
URL url = new URL(fileUrl);
Path destination = Path.of(destinationPath);
Files.copy(url.openStream(), destination, StandardCopyOption.REPLACE_EXISTING);
// 方法2:使用 java.net.URL 和 FileOutputStream
/*
try (BufferedInputStream in = new BufferedInputStream(url.openStream());
FileOutputStream fileOutputStream = new FileOutputStream(destinationPath)) {
byte[] dataBuffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) {
fileOutputStream.write(dataBuffer, 0, bytesRead);
}
}
*/
System.out.println("文件下載完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例代碼中,你可以選擇使用方法1或方法2來下載文件。java.net.URL.openStream()
方法可以打開與URL的連接,并返回一個輸入流,可以從中讀取數據。然后使用java.nio.file.Files.copy()
方法將數據復制到指定的目標文件中。或者,你可以使用java.io.FileOutputStream
類將數據逐字節寫入目標文件中。
在下載文件之前,請確保目標文件路徑的目錄已存在,并且有足夠的權限來寫入文件。