I'm not sure what I/O savings you'll get. Your program will still have to read every single line and do the same amount of disk I/O. If you want to
process data one hundred lines at a time...well, you're still processing the same amount of characters no matter what, one at a time.
Second, the read and sysread functions, as you know, use bytes as delimiters. The diamond operator <> reads a line at a time.
Hope this clarifies a little.