模拟QQ相册上传图片(上传指定文件夹下所有的图片)
多线程上传(每个图片开辟一个子线程)
package cn.hp.thread;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class ThreadPhoto {
/**
模拟QQ相册上传图片(上传指定文件夹下所有的图片)
* 多线程上传(每个图片开辟一个子线程)
* */
public static void main(String[] args) {
File imgPath = new File("C:\\11");
File tolmgPath = new File("D:\\11");
//获取指定目录下的所有图片
File[] imgs = imgPath.listFiles();
//遍历图片文件,循环一个传一个
for (int i = 0; i < imgs.length; i++) {
//创建子线程对象
CopylmgThread t = new CopylmgThread();
t.setImgFile(imgs[i]);//设置本线程要复制的图片
t.setFile2(tolmgPath);//目标文件夹
t.start();//启动子线程
}
}
}
class CopylmgThread extends Thread{
private File imgFile;//要复制的图片文件对象
private File file2;//要粘贴到那个目录中
@Override
public void run() {
try {
FileInputStream in = new FileInputStream(imgFile);
File img = new File(file2,imgFile.getName());
FileOutputStream out = new FileOutputStream(img);
int len=0;
byte[] bytes=new byte[10];//相当于缓存空间
while ((len=in.read(bytes))!=-1){
out.write(bytes,0,len);
}
out.close();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public File getImgFile() {
return imgFile;
}
public void setImgFile(File imgFile) {
this.imgFile = imgFile;
}
public File getFile2() {
return file2;
}
public void setFile2(File file2) {
this.file2 = file2;
}
}