文件的拆除和拼装
package TestStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*找到一个大于100k的文件,按照100k为单位,拆分成多个子文件,并且以编号作为文件名结束。
比如文件 eclipse.exe,大小是309k。
拆分之后,成为
eclipse.exe-0
eclipse.exe-1
eclipse.exe-2
eclipse.exe-3*/
public class Test04 {
static int j = 0;
public static void main(String[] args) {
try{
File file = new File("D:Test.exe");
FileInputStream fis = new FileInputStream(file);
byte[] all = new byte[(int) file.length()];
fis.read(all);
System.out.println(all.length);
fis.close();
String fileName = "D:Test.exe-";
String tmpFileName;
for (int i = 0; i < 4; i++) {
tmpFileName = fileName + Integer.toString(i);
File file1 = new File(tmpFileName);
file1.getParentFile().mkdirs();
file1.createNewFile();
FileOutputStream fos = new FileOutputStream(file1);
for ( ; j < all.length; j++) {
fos.write(all[j]);
if( i < 3){
if((j+1) % 10000 == 0){
j++;
break; // break 后不会自动j++
}
}
}
fos.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
package TestStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test05 {
public static void main(String[] args) throws IOException {
String fileName = "D:Test.exe-";
String tmpName;
File file = new File("E:ly.exe");
file.getParentFile().mkdirs();
file.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(file);
for (int i = 0; i < 4; i++) {
tmpName = fileName + Integer.toString(i);
File file1 = new File(tmpName);
FileInputStream fileInputStream = new FileInputStream(file1);
byte[] bytes = new byte[(int) file1.length()];
fileInputStream.read(bytes);
fileInputStream.close();
fileOutputStream.write(bytes);
}
fileOutputStream.close();
}
}