X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Futils%2FUrlDownloadClient.java;fp=src%2Fjalview%2Fws%2Futils%2FUrlDownloadClient.java;h=58632f2588ac463dddb8e0e5d548101ac2c83b0f;hb=ec8f3cedf60fb1feed6d34de6b49f6bfa78b9dd8;hp=448edd9831c1015036ccc77fcd40202da64255de;hpb=056dad85a910551cc95e44d451a61f6b8c4dd35d;p=jalview.git diff --git a/src/jalview/ws/utils/UrlDownloadClient.java b/src/jalview/ws/utils/UrlDownloadClient.java index 448edd9..58632f2 100644 --- a/src/jalview/ws/utils/UrlDownloadClient.java +++ b/src/jalview/ws/utils/UrlDownloadClient.java @@ -21,6 +21,9 @@ package jalview.ws.utils; +import jalview.util.Platform; + +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; @@ -50,61 +53,71 @@ public class UrlDownloadClient public static void download(String urlstring, String outfile) throws IOException { - FileOutputStream fos = null; - ReadableByteChannel rbc = null; - Path temp = null; - try - { - temp = Files.createTempFile(".jalview_", ".tmp"); - URL url = new URL(urlstring); - rbc = Channels.newChannel(url.openStream()); - fos = new FileOutputStream(temp.toString()); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - - // copy tempfile to outfile once our download completes - // incase something goes wrong - Files.copy(temp, Paths.get(outfile), - StandardCopyOption.REPLACE_EXISTING); - } catch (IOException e) - { - throw e; - } finally - { + FileOutputStream fos = null; + ReadableByteChannel rbc = null; + Path temp = null; try { - if (fos != null) - { - fos.close(); - } + temp = Files.createTempFile(".jalview_", ".tmp"); + + URL url = new URL(urlstring); + rbc = Channels.newChannel(url.openStream()); + fos = new FileOutputStream(temp.toString()); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + + // copy tempfile to outfile once our download completes + // incase something goes wrong + Files.copy(temp, Paths.get(outfile), + StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { - System.out.println( - "Exception while closing download file output stream: " - + e.getMessage()); - } - try + throw e; + } finally { - if (rbc != null) + try { - rbc.close(); + if (fos != null) + { + fos.close(); + } + } catch (IOException e) + { + System.out.println( + "Exception while closing download file output stream: " + + e.getMessage()); } - } catch (IOException e) - { - System.out.println("Exception while closing download channel: " - + e.getMessage()); - } - try - { - if (temp != null) + try + { + if (rbc != null) + { + rbc.close(); + } + } catch (IOException e) { - Files.deleteIfExists(temp); + System.out.println("Exception while closing download channel: " + + e.getMessage()); + } + try + { + if (temp != null) + { + Files.deleteIfExists(temp); + } + } catch (IOException e) + { + System.out.println("Exception while deleting download temp file: " + + e.getMessage()); } - } catch (IOException e) - { - System.out.println("Exception while deleting download temp file: " - + e.getMessage()); } + + } + + public static void download(String urlstring, File tempFile) throws IOException + { + if (!Platform.setFileBytes(tempFile, urlstring)) + { + download(urlstring, tempFile.toString()); } } }