2016-12-19 9 views
0

Я использую Java, и мне нужно добавить, concat, merge или add, в зависимости от того, какой правильный термин, два файла .rtf вместе в исходном формате для обоих файлов rtf, в один файл rtf. Каждый из файлов rtf является страницей, поэтому мне нужно создать двухстраничный файл rtf из двух файлов.Слияние файлов RTF?

Мне также нужно создать разрыв страницы между двумя файлами в новом объединенном файле rtf. Я перешел к MS-слову и смог объединить два файла 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 out, с разрывом страницы между файлом и объектом?

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

Что я делаю неправильно?

ответ

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.rtf и old2.rtf в новый файл new.rtf.

+0

Есть ли способы выработать ответ. Это своего рода смысл, но все же очень потерянный. Спасибо – user2852918

+0

Will Hartung, я ДЕЙСТВИТЕЛЬНО ценю ваш ответ и знаю его право, но я просто не могу понять, что это. Я пытаюсь включить его и не работает для меня. Что я делаю не так?? Я просто слишком новичок в этом и просто не понимаю. – user2852918