package railo.runtime.functions.file; import java.io.IOException; import railo.commons.io.res.Resource; import railo.commons.lang.StringUtil; import railo.runtime.PageContext; import railo.runtime.exp.PageException; import railo.runtime.op.Caster; public class FileAppend { public static String call(PageContext pc, String path, Object data) throws PageException { return call(pc,path,data,pc.getConfig().getResourceCharset()); } public static String call(PageContext pc, String path, Object data,String charset) throws PageException { FileStreamWrapper fsw=null; if(StringUtil.isEmpty(charset,true)) charset=pc.getConfig().getResourceCharset(); try { Resource res = Caster.toResource(pc,path,false); pc.getConfig().getSecurityManager().checkFileLocation(res); fsw=new FileStreamWrapperWrite(res,charset,true,false); fsw.write(data); } catch (IOException e) { throw Caster.toPageException(e); } finally { closeEL(fsw); } return null; } private static void closeEL(FileStreamWrapper fsw) { if(fsw==null)return; try { fsw.close(); } catch (Throwable t) {} } }