java - 检查 Java 中的完整文件下载

标签 java io download

本质上,我将一个相对较小的 .exe 拉到本地存储的文件夹中。理想情况下,我想做的是在文件下载完成时找到,这样我就可以执行一些功能,然后继续处理下一个文件。

这是部分代码:

String saveTo = System.getProperty("user.dir") + "\\Applications\\Setup\\";
ReadableByteChannel rbc = Channels.newChannel(download.openStream());
FileOutputStream fos = new FileOutputStream(saveTo + "setup.exe");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
//Check if file is finished here. 
//Repeat function above for different file here  

最佳答案

你可以这样做。使其成为一个方法,如果成功完成则返回 true,如果未成功则返回 false。在完成之前它不会返回。您传入要保存的文件名和下载网址。

private boolean saveFile(String fileName, URL download)
{
    try
    {          
        String saveTo = System.getProperty("user.dir") + "\\Applications\\Setup\\";

        ReadableByteChannel rbc = Channels.newChannel(download.openStream());

        FileOutputStream fos = new FileOutputStream(saveTo + fileName);

        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);

        fos.close();

        return true;
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    catch (MalformedURLException e)
    {
        e.printStackTrace();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return false;
}

关于java - 检查 Java 中的完整文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932458/

相关文章:

java - 关于比较两个字符串

android - 如何从 Android 上的蓝牙 InputStream 中读取

c# - File.AppendAllText 中的 FileNotFoundException

Java Future 总是返回 null

java - Android - 在 fragment 中使用连接管理器

c# - 在函数中关闭一个流,一个坏主意?

c# - WebClient DownloadDataAsync 当前下载速度

http - 一次下载多个文件

安卓错误 : Notify user of what file is being downloaded

java - 具有自定义高度的 BlackBerry 垂直居中 LabelField