Smalltalk: запись вывода в файл - PullRequest
5 голосов
/ 29 октября 2010

Обычно с моим выводом я записываю его в стенограмму с ...

Transcript show:

Как записать вывод в файл?

Ответы [ 3 ]

7 голосов
/ 29 октября 2010

Вы хотите использовать FileStream

См. эту ссылку, описывающую FileStreams

Отрывок ниже:


FileStream FileStreams поддерживают все ExternalStreamsпротокол.Они могут быть созданы для чтения, записи, чтения и записи или добавления из / в файл.Создание:
* for reading:

      aStream := FileStream readonlyFileNamed:aFilenameString

* to read/write an existing file:

      aStream := FileStream oldFileNamed:aFilenameString

* to create a new file for writing:

      aStream := FileStream newFileNamed:aFilenameString

Выше был внутренний протокол создания экземпляров низкого уровня, который является несколько политически некорректным для использования.Для переносимости используйте сопутствующий класс Filename для создания fileStreams:

* for reading:

      aStream := aFilenameString asFilename readStream

* to read/write an existing file:

      aStream := aFilenameString asFilename readWriteStream

* to create a new file for writing:

      aStream := aFilenameString asFilename writeStream

* to append to an existing file:

      aStream := aFilenameString asFilename appendingWriteStream
2 голосов
/ 20 апреля 2016
| fileName aStream |

fileName := (Filename named: 'stream.st').

aStream := fileName readAppendStream.

aStream nextPutAll: 'What is the best class I have ever taken?'.

aStream cr.

aStream flush.

aStream nextPutAll: 'It is the VisualWorks Intro class!'.

aStream close.
0 голосов
/ 03 ноября 2010

И затем, конечно, не забудьте обработать кодировку символов, которую вы хотите, если вы не пишете бинарную или кодировку по умолчанию. В Pharo / Squeak установите конвертер на нужный подкласс TextConverter.

...