Network Protocol Java

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