/**
* 下载文件
*
* @param url 文件网络路径
* @param filePath 文件下载本地路径
* @param fileName 文件名称(包含后缀)
* @param callBack 回调
*/
public void okHttpDownloadFile(String url, String filePath, String fileName, final CallBackDownloadFile callBack) {
final File incompleteFile = new File(filePath, fileName + ".ysy");
final File completeFile = new File(filePath, fileName);
if (!incompleteFile.exists()) {
try {
incompleteFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Request request = new Request.Builder().url(url).build();
new OkHttpClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
incompleteFile.delete();
callBack.onFailure(e);
}
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
Sink sink = Okio.sink(incompleteFile);
BufferedSink bufferedSink = Okio.buffer(sink);
bufferedSink.writeAll(response.body().source());
bufferedSink.close();
incompleteFile.renameTo(completeFile);
if (bufferedSink != null) {
bufferedSink.close();
}
callBack.onDownloadOk(response.body().string());
}
});
}
【代码块】OkHttp下载文件
最新推荐文章于 2024-08-13 10:10:58 发布