> On 4 Oct 2017, at 09:23, Dirk Olmes <d...@xanthippe.ping.de> wrote:
> 
> Hi Sven,
> 
>>> 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.
>> 
>> (File named: '/tmp/lines.txt') readStreamDo: [ :in | 
>>  | characterStream |
>>  characterStream := ZnCharacterReadStream on: in.
>>  Array streamContents: [ :out | 
>>    [ characterStream atEnd ] whileFalse: [ out nextPut: characterStream 
>> nextLine ] ] ].
> 
> Thanks for the hint, Sven. Of all alternatives you gave I like the last
> one best as it does not load the entire contents of the (probably large)
> text file into memory.

Yes, that is true, the first ones are more for quick and dirty scripting, real 
streaming is better for production code.

> ZnCharacterReadStream belongs to the Zinc classes. I would have expected
> a generic character reading stream to be part of the core classes
> (whatever that means :-) and not a part of some HTTP component classes.
> But that may only be my limited understanding of Pharo so far :-)

Well, the package is 'Zinc-Character-Encoding-Core' not 'Zinc-HTTP'. Character 
encoding stands on its own and has nothing to do with HTTP. See also this book 
chapter 
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/Zinc-Encoding-Meta/Zinc-Encoding-Meta.html

> -dirk
> 


Reply via email to