Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void download(URL source, String dest, boolean indeterminate)
- {
- JFrame frame=new JFrame("Working...");
- frame.setResizable(true);
- frame.setLayout(new FlowLayout());
- JPanel panel=new JPanel(new FlowLayout());
- final JProgressBar prog=new JProgressBar();
- prog.setIndeterminate(indeterminate);
- long filesize=0L;
- if(!indeterminate)
- {
- filesize=getFilesize(source.toString());
- System.out.println(filesize);
- prog.setMaximum((int)filesize);
- prog.setMinimum(0);
- }
- final long finalsize=filesize;
- panel.add(prog, "South");
- prog.setVisible(true);
- frame.add(panel, "South");
- frame.setSize(300, 100);
- panel.setSize(250, 100);
- frame.setLocationRelativeTo(null);
- frame.setVisible(true);
- prog.setStringPainted(true);
- try
- {
- java.io.BufferedInputStream in = new java.io.BufferedInputStream(source.openStream());
- java.io.FileOutputStream fos = new java.io.FileOutputStream(dest);
- java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
- byte[] data = new byte[1024];
- int x=0;
- long previous=fos.getChannel().position();
- while((x=in.read(data,0,1024))>=0)
- {
- final long change=fos.getChannel().position()-previous;;
- final long pos=fos.getChannel().position();
- if(!indeterminate)
- EventQueue.invokeLater(new Runnable()
- {
- public void run()
- {
- prog.setValue(prog.getValue()+(int)change);
- prog.setString((pos/1024)+" KB/"+(finalsize/1024)+" KB");
- }
- });
- System.out.println("pos: "+fos.getChannel().position());
- System.out.println("change: "+change);
- bout.write(data,0,x);
- previous=fos.getChannel().position();
- }
- bout.close();
- in.close();
- prog.setValue(prog.getMaximum());
- prog.setString(finalsize+" KB/"+finalsize+" KB");
- System.out.println("Done");
- }
- catch(UnknownHostException e)
- {
- frame.setVisible(false);
- dialog("Can't connect to the internet", "Can't check if there's a new version.\n" +
- "Make sure you're connected to the internet and try again.", 10);
- }
- catch(IOException e)
- {
- frame.setVisible(false);
- dialog("Complicated error", "Something to do with opening streams", 11);
- }
- //error 12
- frame.setVisible(false);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement