java用线程实现复制文件:就是复制大文件时,用多个线程把大文件分成小文件,实现快速复制。

如题所述

package DuoXianCheng;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
public class CopyFile implements Runnable {
public synchronized void run(){
try {
InputStream is=
new FileInputStream("f:"+File.separator+"file1"+File.separator+"321.txt");
Reader rd=new InputStreamReader(is,"gbk");
BufferedReader br=new BufferedReader(rd);
OutputStream os=
new FileOutputStream("f:"+File.separator+"file1"+File.separator+"1234.txt");
OutputStreamWriter osw=new OutputStreamWriter(os,"gbk");
String str="";
while((str=br.readLine())!=null){
osw.write(str);
System.out.println(str);
}
osw.close();
br.close();
os.close();
rd.close();
is.close();
System.out.println(Thread.currentThread().getName()+":复制完毕");
} catch (Exception e) {
e.printStackTrace();
}
}
}

主函数:
package DuoXianCheng;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CopyFileText {
public static void main(String[] args) {
CopyFile cf=new CopyFile();
ExecutorService es=
Executors.newFixedThreadPool(3);
es.execute(cf);
es.execute(cf);
es.execute(cf);
es.shutdown();
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答