package test2;
import java.awt.Toolkit;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;
public class Download {
private JFrame jf;
private JProgressBar jpb;
/**
* 构造方法,用来初始化窗体
*/
public Download() {
}
public static void main(String[] args) throws IOException {
Download d = new Download();
File src = new File("F:\\天龙八部.mp4");
File path = new File("E:\\天龙八部.mp4");
d.sendFile(src, path);
}
/**
* 传输文件的方法
* @param src 要复制的原文件
* @param path 复制的目标目录
* @throws IOException
*/
public void sendFile(File src,File path) throws IOException{
/*
* 创建窗体
*/
jf = new JFrame();
jpb = new JProgressBar();
// 获取当前屏幕尺寸
double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();// 1920
double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();// 1080
// 设置窗体尺寸
int kuan = 300;
int gao = 80;
// 设置窗体出现的位置,居中显示
int x = (int) ((width - kuan) / 2);
int y = (int) ((height - gao) / 2);
JFrame jf = new JFrame();// 实例化窗体对象
jf.setVisible(true);// 设置窗体显示
jf.setBounds(x, y, kuan, gao);// 设置窗体出现的位置和大小
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体关闭后,停止JVM
JProgressBar jpb = new JProgressBar();// 创建进度条对象
jf.add(jpb);
/*
* 传输文件
*/
//输入流,读取文件
InputStream is = new FileInputStream(src);
//输出流,用来复制文件
OutputStream os = new FileOutputStream(path);
//原文件大小
long len = src.length();
//已复制的累加大小
double sum = 0;
//每次读取的字节大小
byte[] b = new byte[500];
int i = 0;
while((i=is.read(b))!=-1){
//累加已复制的大小
sum += i;
//计算已复制的百分比
int k = (int) (sum/len*100);
//显示到窗体中
jpb.setValue(k);
jf.setTitle("已复制了"+k+"%");
os.write(b, 0, i);
}
//弹出提示对话框
JOptionPane.showMessageDialog(jf, src.getName()+"已复制完成");
jf.dispose();//清除当前窗体
os.close();
is.close();
}
}
import java.awt.Toolkit;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;
public class Download {
private JFrame jf;
private JProgressBar jpb;
/**
* 构造方法,用来初始化窗体
*/
public Download() {
}
public static void main(String[] args) throws IOException {
Download d = new Download();
File src = new File("F:\\天龙八部.mp4");
File path = new File("E:\\天龙八部.mp4");
d.sendFile(src, path);
}
/**
* 传输文件的方法
* @param src 要复制的原文件
* @param path 复制的目标目录
* @throws IOException
*/
public void sendFile(File src,File path) throws IOException{
/*
* 创建窗体
*/
jf = new JFrame();
jpb = new JProgressBar();
// 获取当前屏幕尺寸
double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();// 1920
double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();// 1080
// 设置窗体尺寸
int kuan = 300;
int gao = 80;
// 设置窗体出现的位置,居中显示
int x = (int) ((width - kuan) / 2);
int y = (int) ((height - gao) / 2);
JFrame jf = new JFrame();// 实例化窗体对象
jf.setVisible(true);// 设置窗体显示
jf.setBounds(x, y, kuan, gao);// 设置窗体出现的位置和大小
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体关闭后,停止JVM
JProgressBar jpb = new JProgressBar();// 创建进度条对象
jf.add(jpb);
/*
* 传输文件
*/
//输入流,读取文件
InputStream is = new FileInputStream(src);
//输出流,用来复制文件
OutputStream os = new FileOutputStream(path);
//原文件大小
long len = src.length();
//已复制的累加大小
double sum = 0;
//每次读取的字节大小
byte[] b = new byte[500];
int i = 0;
while((i=is.read(b))!=-1){
//累加已复制的大小
sum += i;
//计算已复制的百分比
int k = (int) (sum/len*100);
//显示到窗体中
jpb.setValue(k);
jf.setTitle("已复制了"+k+"%");
os.write(b, 0, i);
}
//弹出提示对话框
JOptionPane.showMessageDialog(jf, src.getName()+"已复制完成");
jf.dispose();//清除当前窗体
os.close();
is.close();
}
}