If you do (File named: '/tmp/lines.txt') readStream[Do:]
you seem to get a binary stream (this is the new implementation I guess), when you go via FileReference you get a character stream (but that are old ones). I know, very confusing. We're always in the midst of transitions. > On 2 Oct 2017, at 15:17, Stephane Ducasse <stepharo.s...@gmail.com> wrote: > > Sven I do not see the binary stream. Is it ZnCharacterReadStream? > > Stef > > On Mon, Oct 2, 2017 at 1:22 PM, Sven Van Caekenberghe <s...@stfx.eu> wrote: >> Hi, >> >>> On 2 Oct 2017, at 13:07, Dirk Olmes <d...@xanthippe.ping.de> wrote: >>> >>> Hi, >>> >>> I'm trying to get started with Pharo doing something really simple - at >>> least that's what I thought ... I'm trying to read a text file line by line. >>> >>> If I use File named: '/tmp/linex.txt' readStream nextLine I'll get a >>> debugger telling me that BinaryFileStream does not understand nextLine. >>> >>> Now I've tried my best to find a stream that may be reading plain text >>> lines but to no avail ... >>> >>> Help! >>> >>> -dirk >> >> $ cat > /tmp/lines.txt >> one >> two >> three >> >> (FileLocator temp / 'lines.txt') contents lines. >> >> '/tmp/lines.txt' asFileReference contents lines. >> >> '/tmp/lines.txt' asFileReference readStreamDo: [ :in | >> Array streamContents: [ :out | >> [ in atEnd ] whileFalse: [ out nextPut: in nextLine ] ] ]. >> >> (File named: '/tmp/lines.txt') readStreamDo: [ :in | >> | characterStream | >> characterStream := ZnCharacterReadStream on: in. >> Array streamContents: [ :out | >> [ characterStream atEnd ] whileFalse: [ out nextPut: characterStream >> nextLine ] ] ]. >> >> They all return #('one' 'two' 'three'). >> >> In the last, more complex example, you first get a binary stream (and a >> 'line' is a character based concept), so wrapping the binary stream in a >> character read stream (which does know about lines) solves the problem. >> >> HTH, >> >> Sven >