拆分文件的要求:大于100k的文件,按照100k为单位,拆分成多个子文件(不够100k按照实际大小保存),并且以编号作为文件名结束。
把上述拆分出来的文件,合并成一个原文件。
新手练习
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class SpiltFile {
private static void writefile(byte[] data,File file) throws IOException {
FileOutputStream f=new FileOutputStream(file,true);
f.write(new String(data,"utf-8").getBytes());
f.flush();
f.close();
}
public static void spilt(String name)throws IOException {
File file=new File(name+".txt");
FileInputStream in=new FileInputStream(file);
byte[] bytes=new byte[102400];
int len;
if((file.length()%102400)==0)
len=(int) (file.length()/102400);
else
len=(int)file.length()/102400+1;
for(int i=0;i<len;i++) {
if(i==len-1)
bytes=new byte[(int)file.length()-(len-1)*102400];
in.read(bytes);
File f=new File("file"+i+".txt");
writefile(bytes,f);
}
in.close();
}
public static void add(String name) throws IOException {
int i=0;
while(true) {
File file=new File(name+i+".txt");
if(file.exists()) {
byte[] bytes=new byte[(int)file.length()];
FileInputStream in=new FileInputStream(file);
in.read(bytes);
writefile(bytes,new File(name+".txt"));
in.close();
i++;
}
else
break;
}
}
public static void main(String[] args) throws IOException {
spilt("file1");
add("file");
}
}