readByte method
Reads the next byte of data from the input stream.
The value byte is returned as an int
in the range 0
to 255
.
If no byte is available because the end of the stream has been reached,
the value -1
is returned.
This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
Returns
The next byte of data, or -1
if the end of the stream is reached.
Example
final input = FileInputStream('data.txt');
int byte;
while ((byte = await input.readByte()) != -1) {
print('Read byte: $byte');
}
await input.close();
Throws IOException if an I/O error occurs. Throws StreamClosedException if the stream has been closed.
Implementation
@override
Future<int> readByte() async {
await _ensureOpen();
try {
final bytes = await _randomAccessFile!.read(1);
if (bytes.isEmpty) {
return -1; // End of file
}
_position++;
return bytes[0];
} catch (e) {
throw IOException('Error reading from file: ${_file.path}', cause: e);
}
}