ImageOutputStreamImpl.java [plain text]
package javax.imageio.stream;
import java.io.IOException;
import java.nio.ByteOrder;
public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl
implements ImageOutputStream
{
public ImageOutputStreamImpl()
{
}
protected void flushBits()
throws IOException
{
throw new Error("not implemented");
}
public void write(byte[] data)
throws IOException
{
write(data, 0, data.length);
}
public abstract void write(byte[] data, int offset, int len)
throws IOException;
public abstract void write(int value)
throws IOException;
public void writeBit(int bit)
throws IOException
{
throw new Error("not implemented");
}
public void writeBits(long bits, int numBits)
throws IOException
{
throw new Error("not implemented");
}
public void writeBoolean(boolean value)
throws IOException
{
writeByte(value ? 1 : 0);
}
public void writeByte(int value)
throws IOException
{
write(value & 0xff);
}
public void writeBytes(String data)
throws IOException
{
write(data.getBytes());
}
public void writeChar(int value)
throws IOException
{
writeShort((short) value);
}
public void writeChars(char[] data, int offset, int len)
throws IOException
{
for(int i = 0; i < len; ++len)
writeChar(data[offset + i]);
}
public void writeChars(String data)
throws IOException
{
throw new Error("not implemented");
}
public void writeDouble(double value)
throws IOException
{
writeLong((long) value);
}
public void writeDoubles(double[] data, int offset, int len)
throws IOException
{
for(int i = 0; i < len; ++len)
writeDouble(data[offset + i]);
}
public void writeFloat(float value)
throws IOException
{
writeInt((int) value);
}
public void writeFloats(float[] data, int offset, int len)
throws IOException
{
for(int i = 0; i < len; ++len)
writeFloat(data[offset + i]);
}
public void writeInt(int value)
throws IOException
{
if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
{
buffer[0] = ((byte) value);
buffer[1] = ((byte) (value >> 8));
buffer[2] = ((byte) (value >> 16));
buffer[3] = ((byte) (value >> 24));
}
else
{
buffer[0] = ((byte) (value >> 24));
buffer[1] = ((byte) (value >> 16));
buffer[2] = ((byte) (value >> 8));
buffer[3] = ((byte) value);
}
write(buffer, 0, 4);
}
public void writeInts(int[] data, int offset, int len)
throws IOException
{
for(int i = 0; i < len; ++len)
writeInt(data[offset + i]);
}
public void writeLong(long value)
throws IOException
{
if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
{
buffer[0] = ((byte) value);
buffer[1] = ((byte) (value >> 8));
buffer[2] = ((byte) (value >> 16));
buffer[3] = ((byte) (value >> 24));
buffer[4] = ((byte) (value >> 32));
buffer[5] = ((byte) (value >> 40));
buffer[6] = ((byte) (value >> 48));
buffer[7] = ((byte) (value >> 56));
}
else
{
buffer[0] = ((byte) (value >> 56));
buffer[1] = ((byte) (value >> 48));
buffer[2] = ((byte) (value >> 40));
buffer[3] = ((byte) (value >> 32));
buffer[4] = ((byte) (value >> 24));
buffer[5] = ((byte) (value >> 16));
buffer[6] = ((byte) (value >> 8));
buffer[7] = ((byte) value);
}
write(buffer, 0, 8);
}
public void writeLongs(long[] data, int offset, int len)
throws IOException
{
for(int i = 0; i < len; ++len)
writeLong(data[offset + i]);
}
public void writeShort(int value)
throws IOException
{
if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
{
buffer[0] = ((byte) value);
buffer[1] = ((byte) (value >> 8));
}
else
{
buffer[0] = ((byte) (value >> 8));
buffer[1] = ((byte) value);
}
write(buffer, 0, 2);
}
public void writeShorts(short[] data, int offset, int len)
throws IOException
{
for(int i = 0; i < len; ++len)
writeShort(data[offset + i]);
}
public void writeUTF(String data)
throws IOException
{
throw new Error("not implemented");
}
}