[MMA 11.0, Win7 64bit]

I have a number of CVS files of ~1-2GB, millions of rows, so I want to read them in records, chunks building on Albert Retey's answer to this question

I assumed, and the documentation confirmed, that

There is always a "current point" maintained for any stream. When you read an object from a stream, the current point is left after the input you read. Successive calls to Read can therefore be used to read successive objects in a stream such as a file.

But, as this trivial example showed, StreamPosition is stubbornly 0 after a read

Close[openedReadStream];


Output:

0
0


A plethora of questions arise, of which the most pressing is: how do I avoid this problem?

TIA!

Having written it up, I might as well answer having double-checked my thinking before posting, just in case I was about to make a fool of myself...

The problem lies on this line:

openedReadStream := OpenRead[readPath];


which, as a SetDelayed causes the file to be reopened everytime I read from it.

The correct, i.e. appropriate, input of course uses Set (immediate), so the stream is opened just once:

openedReadStream = OpenRead[readPath];


after which the output is now as expected:

0