В этой задаче я беру символы «0» и «1». Я также могу взять строки типа «0011001». Они хранятся в буфере, но мне нужно изменить значения true и false на байты, такие как 1 и 0.
{Мне нужна помощь в методе OutputByte.}
public class BitOutputStream {
Stack<Boolean> buffer;
OutputStream os;
BitOutputStream(OutputStream file) {
buffer = new Stack<Boolean>();
os = file;
}
public void WriteBit(char bit) throws IOException {
if (bit == '0') buffer.push(false);
else buffer.push(true);
}
//Needs to take care both of the scenarios
public void WriteBit(String bit) throws IOException {
if (bit == "0") buffer.push(false);
else buffer.push(true);
OutputByte();
}
//When the close() method is called, output whatever bits are in the buffer (even if less than 8).
public void close() throws IOException {
os.close();
}
//Turning boolean buffer to byte
private void OutputByte() {
}
}