2

本质上,我将一个相对较小的 .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  
4

1 回答 1

1

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

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;
}
于 2013-07-29T19:44:42.287 回答