LeDataStrteam consists of Little-endian replacements for DataInputStream, DataOutputStream and RandomAccessFile you can use in your own Java programs. They cannot be run standalone. They work just like DataInputStream, DataOutputStream and RandomAccessFile except they work with little-endian binary data. Normally Java binary I/O is done with big-endian data, with the most significant byte of an integer or float first. Intel and Windows 95 tend to work with little endian data in native files. LEDataInputStream, LEDataOutputStream and LERandomAccessFile will let you read and write such files. Source code provided. I repeat, LeDataStream is code you insert into your own Java programs. It is not a stand-alone utility. You need basic Java programming skills to use it. It lives in package com.mindprod.ledatastream so its *.java files would live in com\mindprod\ledatastream in the same source code tree as your own code. You would treat the LeDataStream *.java files just as if you had written the code yourself. e.g. import com.mindprod.ledatastream.LEDataInputStream; The java.nio (new I/O) package that is new with JDK1.4 has ByteBuffer and friends that support big and little endian. That way you don't need LEDataStream. LEDataStream is considerably simpler, howewer. Note that LEDatastream.read(byte b[], int off, int len) is exactly the same as DataStream.read((byte b[], int off, int len). With bytes, there is no difference between big and little endian data. LEDatastream.read does NOT reverse the order of the bytes read! For background see http://mindprod.com/jgloss/endian.html Why the egg icon? In Jonathan Swift's Gulliver's Travels, two countries fought over which end of the end was best to break it, the little or big end, mirroring the struggle between the users of little and big endian binary formats. See http://mindprod.com/jgloss/endian.html