title: Connect JProgressBar with download process
body: <p>I have the below code. I can't make it work. </p>
  
  <p>I have to mention that the URL is redirecting. I mean that <code>url = http://www.thissite.com</code> and redirects to <code>http://www.othersite.com</code>. But I want to get it work with the initial <code>url</code>.</p>
  
  <pre><code> public void download(String address, String localFileName, JProgressBar progress ) {
      OutputStream out = null;
      URLConnection conn = null;
      InputStream in = null;
  
      try {
  
            URL url = new URL(address);
  
  
  
          // Open an output stream to the destination file on our local filesystem
          out = new BufferedOutputStream(new FileOutputStream("/MusicDownloads/"+localFileName));
          conn = url.openConnection();
  
          in = conn.getInputStream();
  
          int length = conn.getContentLength(); //find out how long the file is, any good webserver should provide this info
           int current = 0;
            progress.setMaximum(length); //we're going to get this many bytes
            progress.setValue(0); //we've gotten 0 bytes so far
  
          // Get the data
          byte[] buffer = new byte[1024];
          int numRead = 0;
  
          while ((numRead = in.read(buffer)) != -1) {
              current=0;
              out.write(buffer, current, numRead);
  
                current += numRead; //we've progressed a little so update current
  
              progress.setValue(current); //tell progress how far we are
  
  
          }
          // Done! Just clean up and get out
      } catch (Exception exception) {
          exception.printStackTrace();
      } finally {
          try {
              if (in != null) {
                  in.close();
              }
              if (out != null) {
                  out.close();
              }
          } catch (IOException ioe) {
              // Shouldn't happen, maybe add some logging here if you are not
              // fooling around ;)
          }
      }
  }
  </code></pre>