package com.test;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
public class BreakpointContinuingly {
static File sourceFile = null;
static File targetFile = null;
static int position;
public static void main(String[] args) {
sourceFile = new File("F:\\test.txt");
targetFile = new File("E:\\test.txt");
try {
System.out.println(System.currentTimeMillis());
FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] buf = new byte[1];
while (fis.read(buf) != -1) {
if(Integer.parseInt(String.valueOf(targetFile.length())) == 13){
position = 13;
keepGoing(sourceFile, targetFile, position);
break;
}
bos.write(buf);
bos.flush();
}
bos.close();
fos.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
System.out.println(System.currentTimeMillis());
}
}
public static void keepGoing(File sourceFile,File targetFile, int position){
try {
//延时10s,模拟中断
Thread.sleep(10000);
//rw 读写权限
RandomAccessFile reAccessFile = new RandomAccessFile(sourceFile, "rw");
RandomAccessFile wRandomAccessFile = new RandomAccessFile(targetFile, "rw");
reAccessFile.seek(position);
wRandomAccessFile.seek(position);
byte[] buf = new byte[1];
while (reAccessFile.read(buf)!= -1) {
wRandomAccessFile.write(buf);
}
wRandomAccessFile.close();
reAccessFile.close();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}