ファイルを 2 つのファイルに分割し、それらをマージして戻そうとすると、そのファイルを開くことができません。「このドキュメントを開くときにエラーが発生しました。ファイルが破損しているため、修復できませんでした。」というエラーが表示されます。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class combinefiles {
public static void main(String[] args) throws IOException {
File f1 = new File("C:\\Users\\Desktop\\copie1.pdf");
InputStream if1 = new FileInputStream(f1);
BufferedInputStream bf1 = new BufferedInputStream(if1);
File f2 = new File("C:\\Users\\Desktop\\copie2.pdf");
FileInputStream if2 = new FileInputStream(f2);
BufferedInputStream bf2 = new BufferedInputStream(if2);
File f3 = new File("C:\\Users\\Desktop\\merge.pdf");
FileOutputStream of3 = new FileOutputStream(f3);
BufferedOutputStream bf3 = new BufferedOutputStream(of3);
int packetsize = 1024;
double nosofpackets=Math.ceil(((int) (new File("C:\\Users\\Desktop\\NAV_7.pdf")).length())/packetsize);
System.out.println(nosofpackets);
int bytesRead =0;
byte[] buffer = new byte[1024];
for ( int i = 0;i<100;i++){
//while ( (bytesRead = bf1.read(buffer)) != -1){
bf1.read(buffer, 0,buffer.length);
//System.out.println("Packet:"+(i+1));
bf3.write(buffer, 0, buffer.length);
bf3.flush();
}
//while ( (bytesRead = bf2.read(buffer)) != -1){
for ( int i = 101;i<nosofpackets+2;i++){
bf2.read(buffer, 0,buffer.length);
System.out.println("Packet:"+(i+1));
bf3.write(buffer,0, buffer.length);
bf3.flush();
}
of3.close();
}
}