java - Can a stream be created from an object that has only exposed the "readNext" portion of an iterator? -
i trying read csv file, due size, without loading memory first.
the library found reading csv opencsv
, works well, exposes 2 methods:
readall()
and
readnext()
readall
out, don't want in memory @ same time, i'd use lazily read file via readnext
. , ideally, i'd wrap reading via stream.
the closest i've gotten giving readnext
method stream.generate
construct,
stream csvdatastream = stream.generate(csvreader::readnext);
but has massive draw of throwing error once iterator underlying csvreader
exhausted. don't want wrap entire program in try/catch block because i'm using language wrong. there way create stream exposes next
method?
implement spliterator
. need implement tryadvance
method nontrivial implementation; trysplit
can return null
, characteristics()
can return ordered, , estimatesize
can return long.max_value. call streamsupport.stream(spliterator)
make stream.
Comments
Post a Comment