Why does hasNextLine() never end?

When reading from System.in, you are reading from the keyboard, by default, and that is an infinite input stream… it has as many lines as the user cares to type. I think sending the control sequence for EOF might work, such as CTL-Z (or is it CTL-D?).

Looking at my good-ol’ ASCII chart… CTL-C is an ETX and CTL-D is an EOT; either of those should work to terminate a text stream. CTL-Z is a SUB which should not work (but it might, since controls are historically interpreted highly subjectively).

Leave a Comment