import java.net.*;import java.io.*;public class saveBinaryFile {  public static void main (String args[]) {    for (int i = 0; i < args.length; i++) {      try {        URL root = new URL(args[i]);        saveBinaryFile(root);      }      catch (MalformedURLException e) {        System.err.println(args[i] + " is not a URL I understand.");      }    } // end for  } // end main  public static void saveBinaryFile(URL u) {      try {      URLConnection uc = u.openConnection();      String ct = uc.getContentType();      int cl = uc.getContentLength();      if (ct.startsWith("text/") || cl == -1 ) {        System.err.println("This is not a binary file.");        return;      }      InputStream theImage = uc.getInputStream();      byte[] b = new byte[cl];      int bytesread = 0;      int offset = 0;      while (bytesread >= 0) {         bytesread = theImage.read(b, offset, b.length-offset);         if (bytesread == -1) break;         offset += bytesread;      }      if (offset != cl) {        System.err.println("Error: Only read " + offset + " bytes");        System.err.println("Expected " + cl + " bytes");      }      String theFile = u.getFile();      theFile = theFile.substring(theFile.lastIndexOf('/') + 1);      FileOutputStream fout = new FileOutputStream(theFile);      fout.write(b);    }  // end try    catch (Exception e) {     System.err.println(e);    }        return;    } // end saveBinaryFile}