Which begs the question, how does he differentiate between a CRLF
terminating a line of input, and one that's in a field.
The most obvious answer is that the CRLF is quoted. But whatever the
indicator, I'd guess that a suitable regex could distinguish the
individual fields without picking up the CRLF as a terminator for the line
(you'd have to disable the end-of-line processing for the regex, of
course).
I'm not familiar with Scanner, but it looks to me as though you can use a
custom regex to tell it how to break apart the input line. Assuming he
can come up with an appropriate regex to do the job, it should be
relatively easy to move from that to using Scanner for the actual input
processing.
As far as the exact regex goes, well...that'd be for someone else to
figure out. I'm not good enough with regular expressions to come up with
that easily, and don't have the time or interest to work it out myself.
Pete