• Post Reply Bookmark Topic Watch Topic
  • New Topic

Scanner.stream()  RSS feed

 
Campbell Ritchie
Marshal
Posts: 56530
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:. . . Pity that Scanner doesn't have a stream() method.

Winston
When Streams first came out, Cay Horstmann wrote the same sort of thing in a blog. I am not quite sure about that. Half of me thinks that Scanner ought to have a lines() method returning a Stream<String> (like BufferedReader). The other half thinks that Scanner is intended to tokenise its input, giving you anint then a double then a word, so what would its method look like? Maybe a tokens() method returning separate tokens into a Stream<String>, and maybe a lines() method as before?
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:The other half thinks that Scanner is intended to tokenise its input, giving you anint then a double then a word, so what would its method look like?

Well, by default Scanner is an Iterator to its tokens, which suggests to me that it could possibly look something like this:but since I'm new to all this stuff there may well be better ways - or I could be totally wrong.

Edit - Looking at the docs, it seems that it might be better to use StreamSupport.stream(Supplier, int, boolean), since Iterable's default method returns an early-binding Spliterator; but not sure how to do that yet, or whether it makes any difference in this case.

Winston
 
Campbell Ritchie
Marshal
Posts: 56530
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:. . . Scanner is an Iterator . . . Winston
I had forgotten that. That is a good justification for giving it methods to create Streams.
 
Campbell Ritchie
Marshal
Posts: 56530
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Things changed in Java9.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!