/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.cpd;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import org.apache.commons.io.IOUtils;
/**
* @author Philippe T'Seyen
*/
public class FileReporter {
private File reportFile;
private String encoding;
public FileReporter(String encoding) {
this(null, encoding);
}
public FileReporter(File reportFile) {
this(reportFile, System.getProperty("file.encoding"));
}
public FileReporter(File reportFile, String encoding) {
this.reportFile = reportFile;
this.encoding = encoding;
}
public void report(String content) throws ReportException {
try {
Writer writer = null;
try {
OutputStream outputStream;
if (reportFile == null) {
outputStream = System.out;
} else {
outputStream = new FileOutputStream(reportFile);
}
writer = new BufferedWriter(new OutputStreamWriter(outputStream, encoding));
writer.write(content);
} finally {
IOUtils.closeQuietly(writer);
}
} catch (IOException ioe) {
throw new ReportException(ioe);
}
}
}