/* * LittleEndianOutputStream.java * * Created on 07 November 2006, 08:26 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package com.inet.gradle.setup.image.image4j.io; import java.io.DataOutputStream; import java.io.IOException; /** * Writes little-endian data to a target <tt>OutputStream</tt> by reversing byte ordering. * @author Ian McDonagh */ public class LittleEndianOutputStream extends DataOutputStream { /** * Creates a new instance of <tt>LittleEndianOutputStream</tt>, which will write to the specified target. * @param out the target <tt>OutputStream</tt> */ public LittleEndianOutputStream(java.io.OutputStream out) { super(out); } /** * Writes a little-endian <tt>short</tt> value * @param value the source value to convert * @throws java.io.IOException if an error occurs */ public void writeShortLE(short value) throws IOException { value = EndianUtils.swapShort(value); super.writeShort(value); } /** * Writes a little-endian <tt>int</tt> value * @param value the source value to convert * @throws java.io.IOException if an error occurs */ public void writeIntLE(int value) throws IOException { value = EndianUtils.swapInteger(value); super.writeInt(value); } /** * Writes a little-endian <tt>float</tt> value * @param value the source value to convert * @throws java.io.IOException if an error occurs */ public void writeFloatLE(float value) throws IOException { value = EndianUtils.swapFloat(value); super.writeFloat(value); } /** * Writes a little-endian <tt>long</tt> value * @param value the source value to convert * @throws java.io.IOException if an error occurs */ public void writeLongLE(long value) throws IOException { value = EndianUtils.swapLong(value); super.writeLong(value); } /** * Writes a little-endian <tt>double</tt> value * @param value the source value to convert * @throws java.io.IOException if an error occurs */ public void writeDoubleLE(double value) throws IOException { value = EndianUtils.swapDouble(value); super.writeDouble(value); } /** * @since 0.6 */ public void writeUnsignedInt(long value) throws IOException { int i1 = (int)(value >> 24); int i2 = (int)((value >> 16) & 0xFF); int i3 = (int)((value >> 8) & 0xFF); int i4 = (int)(value & 0xFF); write(i1); write(i2); write(i3); write(i4); } /** * @since 0.6 */ public void writeUnsignedIntLE(long value) throws IOException { int i1 = (int)(value >> 24); int i2 = (int)((value >> 16) & 0xFF); int i3 = (int)((value >> 8) & 0xFF); int i4 = (int)(value & 0xFF); write(i4); write(i3); write(i2); write(i1); } }