static byte[] loadBinaryPageToFile(S url, File file) ctex { print("Loading " + url); return loadBinaryPageToFile(new URL(url).openConnection()); } static byte[] loadBinaryPageToFile(URLConnection con, File file) ctex { setHeaders(con); ret loadBinaryPageToFile_noHeaders(con); } static byte[] loadBinaryPageToFile_noHeaders(URLConnection con, File file) ctex { setHeaders(con); FileOutputStream buf = newFileOutputStream(file); InputStream inputStream = con.getInputStream(); try { long len = 0; try { len = con.getContentLengthLong(); } catch (Throwable e) { printStackTrace(e); } int n = 0; while (true) { int ch = inputStream.read(); if (ch < 0) break; buf.write(ch); if (++n % 100000 == 0) println(" " + n + (len != 0 ? "/" + len : "") + " bytes loaded."); } } finally { buf.close(); inputStream.close(); } }