InputStoragepublic class InputStorage extends Storage Retrieves stored fields from an InputStream.
Since Java Microedition has no serialization, this is a simple substitute. |
Fields Summary |
---|
private DataInputStream | instream to read from |
Constructors Summary |
---|
InputStorage(InputStream input)Constructs an InputStorage for an InputStream.
in = new DataInputStream(input);
// skip past the version number.
in.readByte();
|
Methods Summary |
---|
java.lang.Object | readValue(byte[] tag)Reads a field that was stored as tag, type, value set.
byte type;
try {
try {
in.readFully(tag, 0, 1);
} catch (EOFException eofe) {
// this just means there are no more fields in storage
return null;
}
type = in.readByte();
if (type == BINARY_TYPE) {
int len;
byte[] value;
/*
* must read the length first, because DataOutputStream does
* not handle handle byte arrays.
*/
len = in.readUnsignedShort();
if (len < 0) {
throw new IOException();
}
value = new byte[len];
in.readFully(value);
return value;
}
if (type == STRING_TYPE) {
return in.readUTF();
}
if (type == LONG_TYPE) {
return new Long(in.readLong());
}
if (type == BOOLEAN_TYPE) {
return new Boolean(in.readBoolean());
}
throw new IOException();
} catch (IOException e) {
throw new IOException("input storage corrupted");
}
|
|