文件的分割,srcPath是表示分割的源文件,destPath是分割的目标地,number是表示按几等份进行分割
import java.io.*;
public class FileCut {
public FileCut () {
}
public FileCut (String srcPath, String destPath, int number) {
File file = null;
FileInputStream fin = null;
FileOutputStream fot = null;
BufferedOutputStream bw = null;
long ss = 0;//文件的长度
int dd = 0;//截取文件的长度
try {
file = new File(srcPath);
fin = new FileInputStream(srcPath);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
ss = file.length();
dd = (int) (ss/number);// 每个文件的长度
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
File[] fi = new File[number];//文件数组
int i = 0;
byte[] aaa = new byte[(int) ss];
while (i < number) {
try {
// 创建文件
fi[i] = new File(destPath, i + ".txt");
fi[i].createNewFile();
//往文件中写
fot = new FileOutputStream(destPath + "//" + i+ ".txt");
bw = new BufferedOutputStream(new DataOutputStream(fot));
fin = new FileInputStream(srcPath);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
aaa = new byte[(int) ss];
while (fin.read(aaa)!=-1) {
bw.write(aaa,dd*i,dd);
bw.flush();
}
} catch (IOException e) {
e.getStackTrace();
}
i++;
}
}
public static void main(String[] args) {
//这里可改成动态的
String srcPath = "c://csdn.txt";
String destPath = "d:";
int n = 3;
new FileCut (srcPath, destPath, n);
}
}