0
我已经将文件分成两个文件,然后如果我尝试将它们合并回来,我无法打开该文件。我的错误是“打开此文档时发生错误,文件已损坏,无法修复”。在java中合并文件
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();
}
}
我不认为你可以将两个PDF中的字节粘贴到一个文件中,并有一个合并文件。我怀疑它比这更复杂一点。 –
你是如何分割文件的?与PDF工具或只是字节只是为了有一个更大的文件分解成更小的块?你是否期望部分文件'copie1.pdf'和'copie2.pdf'是有效的pdf文件? – A4L
检查这个帖子:http://stackoverflow.com/questions/3585329/how-to-merge-two-pdf-files-into-one-in-java –