合并RTF文件?

时间:2016-12-19 15:16:06

标签: java rtf fileinputstream

我正在使用Java,我需要将两个rtf文件的原始格式的两个.rtf文件一起追加,连接,合并或添加到一个rtf文件中。每个rtf文件都是一个页面长,所以我需要从这两个文件创建一个两页rtf文件。

我还需要在新的组合rtf文件中创建两个文件之间的分页符。我去了MS word并且能够将两个rtf文件组合在一起,但是这只创建了一个没有分页符的长rtf文件。

我有一个代码,但它只以同样的方式将一个文件复制到另一个文件,但我需要帮助调整这个代码,这样我就可以将两个文件复制到一个文件中

  FileInputStream file = new FileInputStream("old.rtf");
  FileOutputStream out = new FileOutputStream("new.rtf");

  byte[] buffer = new byte[1024];

  int count;

  while ((count= file.read(buffer)) > 0) 
      out.write(buffer, 0, count);

如何在FileInputStream文件之上将另一个FileInputStream对象添加到FileOutputStream中,文件和对象之间有分页符?

我完全陷入困境。我能够将两个rtf文件与帮助结合起来,但无法将两个rtf文件的原始格式保存到新文件中。

我试过了:

    FileInputStream file = new FileInputStream("old.rtf");
    FileOutputStream out = new FileOutputStream("new.rtf", true);

     byte[] buffer = new byte[1024];

     int count;
     while ((count= file.read(buffer)) > 0) 
     out.write(buffer, 0, count);

FileOutputStream(文件文件,boolean append),其中old.rtf被假定附加到new.rtf,但是当我这样做时,old.rtf只写入new.rtf。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

当您打开要添加的文件时,使用FileOutputStream(File file, boolean append)并将append设置为true,然后您可以添加到新文件,而不是过度写入。

FileInputStream file = new FileInputStream("old.rtf");
FileOutputStream out = new FileOutputStream("new.rtf", true);

byte[] buffer = new byte[1024];

int count;

while ((count= file.read(buffer)) > 0) 
    out.write(buffer, 0, count);

这会将old.rtf追加到new.rtf

你也可以这样做:

FileInputStream file = new FileInputStream("old1.rtf");
FileOutputStream out = new FileOutputStream("new.rtf");

byte[] buffer = new byte[1024];

int count;

while ((count= file.read(buffer)) > 0) 
    out.write(buffer, 0, count);

file.close();

file = new FileOutputStream("old2.rtf");
while ((count= file.read(buffer)) > 0) 
    out.write(buffer, 0, count);

这会将old1.rtfold2.rtf连接到新文件new.rtf