The notation "instream.nval" tells you nval is a member on instream, which was declared as a StreamTokenizer. The doc for StreamTokenizer says nval is ...
There are many ways to parse a string. You can look into StringTokenizer (actually don't ... Sun says don't use it in new programs any more), String.split(), and the whole world of regular expressions.
I haven't used StreamTokenizer but see if setting wordChars() and whitespaceChars() would help you break on commas.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi