X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FHttpUtils.java;h=97c84bc2f2275c60d02a7ab1a264077f00f9987e;hb=daa1765ab2101480a724b92a3f3e7dee662ba943;hp=991a20a1f23f387362b577667d82cbd461e2aca9;hpb=a875782b000ff363877677507b7512f8a6c70875;p=jalview.git diff --git a/src/jalview/util/HttpUtils.java b/src/jalview/util/HttpUtils.java index 991a20a..97c84bc 100644 --- a/src/jalview/util/HttpUtils.java +++ b/src/jalview/util/HttpUtils.java @@ -1,4 +1,4 @@ -/******************************************************************************* +/* * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) * Copyright (C) $$Year-Rel$$ The Jalview Authors * @@ -17,9 +17,12 @@ * You should have received a copy of the GNU General Public License * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. - ******************************************************************************/ + */ package jalview.util; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -64,4 +67,46 @@ public class HttpUtils return false; } + /** + * download from given URL and return a pointer to temporary file + */ + public static File fetchURLToTemp(String url) throws OutOfMemoryError, + IOException + { + long time = System.currentTimeMillis(); + URL rcall = new URL(url); + + InputStream is = new BufferedInputStream(rcall.openStream()); + File outFile = null; + try + { + outFile = File.createTempFile("jalview", ".xml"); + outFile.deleteOnExit(); + if (outFile.length() == 0) + { + outFile.delete(); + return null; + } + } catch (Exception ex) + { + } + + if (outFile != null) + { + FileOutputStream fio = new FileOutputStream(outFile); + byte[] bb = new byte[32 * 1024]; + int l; + while ((l = is.read(bb)) > 0) + { + fio.write(bb, 0, l); + } + fio.close(); + is.close(); + return outFile; + } + else + { + return null; + } + } }