Объединение файлов RTF?

Я использую 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 (Файловый файл, логическое добавление), где старый.rtf должен добавляться к новому.rtf, но когда я это делаю, старый.rtf просто записывается в новый.rtf.

Что я делаю не так?


person user2852918    schedule 19.12.2016    source источник


Ответы (1)


Когда вы открываете файл, в который хотите добавить, используйте 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.rtf и old2.rtf в новый файл new.rtf.

person Will Hartung    schedule 19.12.2016
comment
Есть ли способы уточнить ответ. Это вроде как имеет смысл, но все же очень потеряно. Благодарю вас - person user2852918; 19.12.2016
comment
Уилл Хартунг, я ДЕЙСТВИТЕЛЬНО ценю твой ответ и знаю, что он правильный, но я просто не могу заставить себя понять его. Пытаюсь поставить и у меня не работает. Что я делаю не так?? Я просто слишком новичок в этом и просто не понимаю. - person user2852918; 19.12.2016