java基础之多线程复制文件代码演示
来源:互联网 发布:import java.util. 编辑:程序博客网 时间:2024/06/05 02:27
import java.io.FileInputStream;
public class FileCopy extends Thread{
private String path;//声明路径
private int offlen;//读取的数据偏移量
private int size;//读取的字节总数
private boolean isOK = false//声明boolean类型;
byte[] bs;//字节数组
public FileCopy(String path,int offlen,int size){
this.path = path;
this.offlen = offlen;
this.size = size;
}
public boolean getisOK(){
return isOK;
}
public byte[] getData(){
return bs;
}
public void run(){
try {
//建立一个文件输入流
FileInputStream fis = new FileInputStream(path);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.skip(offlen);
bs = new byte[size];
bis.read(bs);
isOK = true;
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
public class WriteThread extends Thread{
private ArrayList<FileCopy> list;//泛型
private String path;
public WriteThread(ArrayList<FileCopy> list,String path){
this.list = list;
this.path = path;
}
public void run(){
try {
FileOutputStream fos = new FileOutputStream(path);
BufferedOutputStream bos = new BufferedOutputStream(fos);
while(!list.isEmpty()){//用循环存进字节数组
FileCopy fc = list.get(0);//指向第一个
if(fc.getisOK()){
byte[] bs = fc.getData();
bos.write(bs);
list.remove(0);//移除第一个数
}
}
bos.flush();//刷新
bos.close();//关闭
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
public class WriteThread extends Thread{
private ArrayList<FileCopy> list;
private String path;
public WriteThread(ArrayList<FileCopy> list,String path){
this.list = list;
this.path = path;
}
public void run(){
try {
FileOutputStream fos = new FileOutputStream(path);
BufferedOutputStream bos = new BufferedOutputStream(fos);
while(!list.isEmpty()){
FileCopy fc = list.get(0);
if(fc.getisOK()){
byte[] bs = fc.getData();
bos.write(bs);
list.remove(0);
}
}
bos.flush();
bos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- java基础之多线程复制文件代码演示
- 【Java基础之多线程】代码库(二)
- java基础之多线程
- java基础之多线程
- Java基础之多线程
- java基础之多线程
- java基础之多线程
- Java基础之多线程
- Java基础之多线程
- Java基础之多线程
- JAVA基础之多线程
- Java基础之多线程
- java基础之多线程
- Java基础之多线程
- java基础之多线程
- java基础之多线程
- Java基础之多线程
- Java基础之多线程
- C/C++程序编译内存分配情况
- Python高阶函数
- TOJ 2836.River Hopscotch(二分好题)
- POJ 1001 Exponentiation 大数乘法模拟
- 进程与线程的区别及相应的通信方法
- java基础之多线程复制文件代码演示
- 增删该查——baseDao
- 【CF 706E】Working routine
- 莫队算法,JZOJ1902,【2010集训队出题】小Z的袜子
- html基础标签知识快速回忆
- 自定义HorizontalScrollView嵌套HorizontalListView实现手势监听、按钮监听滑动功能
- 线程
- Mysql 按年度、季度、月度、周、日统计查询的例子
- json