Особенности решения могут зависеть от диалекта Prolog. Здесь я использую SWI-Prolog. SWI-Prolog позволяет открывать файл с открытым (SrcDest, Mode, Stream), где SrcDest будет вашим именем файла, Mode - чтение/запись/добавление/обновление, а Stream - это «дескриптор файла», который система вернет. В руководстве поясняется разница между добавлением и обновлением следующим образом: «Режим append открывает файл для записи, позиционирует указатель на файл в конце. Обновление режима открывает файл для записи, позиционирует указатель файла в начале файла без усечения файл."
Для копирования из одного потока в другой используйте copy_stream_data (Stream1, Stream2).
Наконец, вы должны закрыть потоки, иначе выходной файл будет пустым.
Собираем все вместе дает
копию (File1, File2): - открытый (File1, читать, Stream1), открытый (File2, писать, stream2), copy_stream_data (file1, file2), недалеко (File1), закрыть (Файл2).
Если вам нужно переписать второй файл, просто используйте режим обновления/добавления.
Как вы пытались подключиться непосредственно в файл? – rvirding
Используется см. ('File2.pro'), читать (X), type1 (X), видеть, final, reconsult ('file1.pro'), reconsult ('file2.pro'). type1 (end_of_file). type1 (X): - open ('file1.pro', append, Stream), write (Stream, X), close (Stream). final: -open ('file1.pro', append, Stream), write (Stream,.), Close (Stream). – smile