java基础之多线程复制文件代码演示
2016-08-18 22:09
399 查看
import java.io.BufferedInputStream;//载入包
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();
}
}
}
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基础-用IO演示文件的复制过程(学习笔记)
- java多线程复制文件的实例代码
- jAVA基础 提高文件复制性能之多线程复制文件
- java多线程读写同一个文件的代码
- JAVA多线程文件复制
- 【Java学习笔记】基础知识学习18【一个小文件的复制方法】
- java 多线程文件复制
- Java基础之访问文件与目录——移动或复制文件和目录(MoveAndCopyFiles)
- Java多线程复制文件(转)
- Java基础之IO流,使用字符流缓冲区复制文件
- Java基础之读文件——使用通道复制文件(FileBackup)
- CopyFile,复制一个文件的Java代码
- java代码---I/O文件内容复制
- JAVA功能代码《12》----使用NIO快速复制文件
- java26行代码实现复制文件程序
- 根据URL从服务器端复制文件到本地java代码
- 从本地和远程复制文件java 代码
- 多线程复制下载文件参考代码
- java基础pdf上关于死锁演示代码
- java多线程基础知识:如何编写线程安全代码