Append one file to another

Hello,

Any help would be greatly appreciated. What I am trying to accomplish would be to write a file to a directory which would already have a file in it. What i want to do is append to this final file and keep writing to it.

If you are in 8.x version, you can use the built-in service pub.file:stringToFile which can append your data to an existing file. For other version, you have to write custom java code to do the same. PSUtilities has a service for this I think.

Senthil

Hi,

To append data to a file in Java you can use FileWriter with the second parameter in the constructor set true. You can try this Java service to append a String to a file, if the file does not exists it is created.

try {
 IDataSharedCursor idc = pipeline.getSharedCursor();
 FileWriter writer = null;
 BufferedWriter buffer = null;
 String filename = null;
 String data = null;
 if (idc.first("filename"))
  filename = (String) idc.getValue();
 else
  throw new ServiceException("appendFile: filename is missing");
 if (idc.first("data"))
  data = (String) idc.getValue();
 else
  throw new ServiceException("appendFile: data is missing");
 // this is where you tell the FileWriter to append.
 writer = new FileWriter(filename, true);
 buffer = new BufferedWriter(writer);
 buffer.write(data);
 buffer.close();
 writer.close();
 idc.destroy();
} catch (Exception e) {
 throw new ServiceException(e);
}

PLEASE: Add a finally clause to the try/catch block to idc.destroy() the cursor. The service as coded above leaks cursor objects if it throws an exception.