sh00p
By: a guest | Mar 20th, 2010 | Syntax:
Java | Size: 1.19 KB | Hits: 96 | Expires: Never
import java.io.*;
import java.util.ArrayList;
public class BitFileWriter {
private FileOutputStream fileOut = null;
private String filename = null;
ArrayList<Boolean> buffer = null;
BitFileWriter(String filename) {
this.filename = filename;
this.buffer = new ArrayList<Boolean>();
}
public void writeBit(String sBit) {
Boolean bBit = null;
if(sBit.equals("1")) bBit = new Boolean(true);
if(sBit.equals("0")) bBit = new Boolean(false);
if(buffer.size() < 8) {
buffer.add(bBit);
if(buffer.size() == 8) {
writeByte();
}
}
}
public void writeByte() {
int b = 0;
for(int i = 0; i < buffer.size(); i++) {
if(buffer.get(buffer.size() - i - 1) == true) {
b |= (1<<i);
}
}
buffer.clear();
try {
fileOut = new FileOutputStream(filename, true);
fileOut.write(b);
fileOut.close();
} catch (IOException c) {
System.out.printf("IO Exception.\n");
System.exit(0);
}
}
public int finish() {
int padding = 0;
if(buffer.size() == 0) {
padding = 0;
return padding;
}
else {
padding = 8 - buffer.size();
writeByte();
buffer.clear();
return padding;
}
}
}