fitnesse.components.ContentBuffer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.components;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import util.FileUtil;
public class ContentBuffer {
private File tempFile;
private OutputStream outputStream;
private boolean opened;
private int size = 0;
public ContentBuffer() throws IOException {
this(".tmp");
}
public ContentBuffer(String ext) throws IOException {
tempFile = File.createTempFile("FitNesse-", ext);
tempFile.deleteOnExit();
}
private void open() throws FileNotFoundException {
if (!opened) {
outputStream = new FileOutputStream(tempFile, true);
opened = true;
}
}
public ContentBuffer append(String value) throws IOException {
byte[] bytes = value.getBytes(FileUtil.CHARENCODING);
return append(bytes);
}
public ContentBuffer append(byte[] bytes) throws IOException {
open();
size += bytes.length;
outputStream.write(bytes);
return this;
}
private void close() throws IOException {
if (opened) {
outputStream.close();
opened = false;
}
}
public String getContent() throws IOException {
close();
return FileUtil.getFileContent(tempFile);
}
public int getSize() {
//close();
return size;
}
public InputStream getInputStream() throws IOException {
close();
return new FileInputStream(tempFile) {
@Override
public void close() throws IOException {
try {
super.close();
} finally {
tempFile.delete();
}
}
};
}
public InputStream getNonDeleteingInputStream() throws IOException {
close();
return new FileInputStream(tempFile);
}
public OutputStream getOutputStream() {
return outputStream;
}
protected File getFile() {
return tempFile;
}
public void delete() {
tempFile.delete();
}
}