Advertisement
moomoohk

Untitled

Mar 31st, 2012
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1. public static void download(URL source, String dest, boolean indeterminate)
  2.     {
  3.         JFrame frame=new JFrame("Working...");
  4.         frame.setResizable(true);
  5.         frame.setLayout(new FlowLayout());
  6.         JPanel panel=new JPanel(new FlowLayout());
  7.         final JProgressBar prog=new JProgressBar();
  8.         prog.setIndeterminate(indeterminate);
  9.         long filesize=0L;
  10.         if(!indeterminate)
  11.         {
  12.             filesize=getFilesize(source.toString());
  13.             System.out.println(filesize);
  14.             prog.setMaximum((int)filesize);
  15.             prog.setMinimum(0);
  16.         }
  17.         final long finalsize=filesize;
  18.         panel.add(prog, "South");
  19.         prog.setVisible(true);
  20.         frame.add(panel, "South");
  21.         frame.setSize(300, 100);
  22.         panel.setSize(250, 100);
  23.         frame.setLocationRelativeTo(null);
  24.         frame.setVisible(true);
  25.         prog.setStringPainted(true);
  26.         try
  27.         {
  28.             java.io.BufferedInputStream in = new java.io.BufferedInputStream(source.openStream());
  29.             java.io.FileOutputStream fos = new java.io.FileOutputStream(dest);
  30.             java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
  31.             byte[] data = new byte[1024];
  32.             int x=0;
  33.             long previous=fos.getChannel().position();
  34.             while((x=in.read(data,0,1024))>=0)
  35.             {
  36.                 final long change=fos.getChannel().position()-previous;;
  37.                 final long pos=fos.getChannel().position();
  38.                 if(!indeterminate)
  39.                     EventQueue.invokeLater(new Runnable()
  40.                     {
  41.                         public void run()
  42.                         {
  43.                             prog.setValue(prog.getValue()+(int)change);
  44.                             prog.setString((pos/1024)+" KB/"+(finalsize/1024)+" KB");
  45.                         }
  46.                     });
  47.                 System.out.println("pos: "+fos.getChannel().position());
  48.                 System.out.println("change: "+change);
  49.                 bout.write(data,0,x);
  50.                 previous=fos.getChannel().position();
  51.             }
  52.             bout.close();
  53.             in.close();
  54.             prog.setValue(prog.getMaximum());
  55.             prog.setString(finalsize+" KB/"+finalsize+" KB");
  56.             System.out.println("Done");
  57.         }
  58.         catch(UnknownHostException e)
  59.         {
  60.             frame.setVisible(false);
  61.             dialog("Can't connect to the internet", "Can't check if there's a new version.\n" +
  62.                     "Make sure you're connected to the internet and try again.", 10);
  63.         }
  64.         catch(IOException e)
  65.         {
  66.             frame.setVisible(false);
  67.             dialog("Complicated error", "Something to do with opening streams", 11);
  68.         }
  69.         //error 12
  70.         frame.setVisible(false);
  71.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement