class ConfigFile extends ConfigPath implements ReadSource, WriteTarget {
    private static final long serialVersionUID = 1L;

    public ConfigFile() {
        super();
    }

    public ConfigFile(String name, String path) {
        super(name, path);
    }

    public Reader obtainReader() {
        try {
            if(!getFile().exists()) {
                getFile().createNewFile();
            }
            
            if (configurer != null) {
                configurer.snapshotToLaunchDir(getFile());
            }

            return new InputStreamReader(
                    new FileInputStream(getFile()),
                    "UTF-8");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public Writer obtainWriter() {
        return obtainWriter(false); 
    }
    
    public Writer obtainWriter(boolean append) {<FILL_FUNCTION_BODY>}

}

        try {
            return new OutputStreamWriter(
                    new FileOutputStream(getFile(), append),
                    "UTF-8");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    
<methods>public void <init>() ,public void <init>(java.lang.String, java.lang.String) ,public org.archive.spring.ConfigPath getBase() ,public java.io.File getFile() ,public java.lang.String getName() ,public java.lang.String getPath() ,public org.archive.spring.ConfigPath merge(org.archive.spring.ConfigPath) ,public void setBase(org.archive.spring.ConfigPath) ,public void setConfigurer(org.archive.spring.ConfigPathConfigurer) ,public void setName(java.lang.String) ,public void setPath(java.lang.String) <variables>protected org.archive.spring.ConfigPath base,protected org.archive.spring.ConfigPathConfigurer configurer,protected java.lang.String name,protected java.lang.String path,private static final long serialVersionUID