Difference between revisions of "READERNAME StreamReaderFormatter.java"
From RifidiWiki
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[category:developerDoc]][[category:emulatorDoc]] | [[category:developerDoc]][[category:emulatorDoc]] | ||
This class handles how bytes should be read in from TCP Socket Most of the time, a reader will not need to implement this class and can instead use either the GenericByteStreamReader or the GenericCharStreamReader. If it does need this method, this class will need to implement the AbstractStreamReader interface | This class handles how bytes should be read in from TCP Socket Most of the time, a reader will not need to implement this class and can instead use either the GenericByteStreamReader or the GenericCharStreamReader. If it does need this method, this class will need to implement the AbstractStreamReader interface | ||
Line 14: | Line 6: | ||
This method should read in bytes from the TCP socket | This method should read in bytes from the TCP socket | ||
− | + | <pre>public abstract byte[] read() throws IOException;</pre> | |
==Arguments== | ==Arguments== | ||
Line 23: | Line 15: | ||
==Reference Implementation== | ==Reference Implementation== | ||
This is the implementation of the read method in the GenericByteStreamReader. | This is the implementation of the read method in the GenericByteStreamReader. | ||
− | + | <pre> | |
public byte[] read() throws IOException { | public byte[] read() throws IOException { | ||
− | ArrayList | + | ArrayList<Byte> bytes = new ArrayList<Byte>(); |
int b = in.read(); | int b = in.read(); | ||
while (in.available() != 0) { | while (in.available() != 0) { | ||
Line 34: | Line 26: | ||
/* If there is nothing on the buffer, return null */ | /* If there is nothing on the buffer, return null */ | ||
if (bytes.isEmpty() || bytes.get(0)==-1) { | if (bytes.isEmpty() || bytes.get(0)==-1) { | ||
− | logger.debug( | + | logger.debug("returning bytes is null"); |
return null; | return null; | ||
} | } | ||
Line 41: | Line 33: | ||
byte[] retVal = new byte[bytes.size()]; | byte[] retVal = new byte[bytes.size()]; | ||
− | logger.debug( | + | logger.debug("returning bytes"); |
− | for (int i = 0; i | + | for (int i = 0; i < bytes.size(); i++) { |
retVal[i] = bytes.get(i); | retVal[i] = bytes.get(i); | ||
} | } | ||
Line 49: | Line 41: | ||
} | } | ||
− | + | </pre> |
Latest revision as of 19:41, 26 November 2010
This class handles how bytes should be read in from TCP Socket Most of the time, a reader will not need to implement this class and can instead use either the GenericByteStreamReader or the GenericCharStreamReader. If it does need this method, this class will need to implement the AbstractStreamReader interface
read
This method should read in bytes from the TCP socket
public abstract byte[] read() throws IOException;
Arguments
Return Value
bytes that were read
Reference Implementation
This is the implementation of the read method in the GenericByteStreamReader.
public byte[] read() throws IOException { ArrayList<Byte> bytes = new ArrayList<Byte>(); int b = in.read(); while (in.available() != 0) { bytes.add((byte) b); b = in.read(); } bytes.add((byte)b); /* If there is nothing on the buffer, return null */ if (bytes.isEmpty() || bytes.get(0)==-1) { logger.debug("returning bytes is null"); return null; } /* Else return the bytes */ else { byte[] retVal = new byte[bytes.size()]; logger.debug("returning bytes"); for (int i = 0; i < bytes.size(); i++) { retVal[i] = bytes.get(i); } return retVal; } }