A good answer might be:

No. The compressed file is a binary file.

DataInputStream

The DataInputStream class is the compliment of the DataOutputStream class. Files (and other streams) written with one are usually read with the other. Here is a list of some of the methods:

Constructor

public DataInputStream(InputStream in)
    Construct a data input stream.

Methods

public void close() throws IOException
public final boolean readBoolean() throws IOException
    Reads a boolean represented as a 1-byte value. 
public final byte readByte() throws IOException
public final char readChar() throws IOException
public final double readDouble() throws IOException
public final float readFloat() throws IOException
public final int readInt() throws IOException
public final long readLong() throws IOException
public final short readShort() throws IOException
public final int readUnsignedByte() throws IOException

All these methods throw an IOException if an error occurs. Upon reaching end of file they throw an EOFException. Reaching end of file is not an error; but throwing an exception is a convenient way of signaling when this happens.

QUESTION 7:

(Thought question: ) Why does readUnsignedByte() return an int and not a byte?