2011-02-15 4 views
1

другу, как можно открыть текстовый файл в Squeak4.1, код Должен быть такой:Как открыть текстовый файл в Squeak4.1

at: #f put: (FileStream open: '/root/test' mode: FileStream read) ! 
f do: [ :c | Transcript nextPut: c ] ! 
f close ! 

любой орган может дать несколько советов о том, как открыть файл и сделать уравнение + - * /? благодаря первым :)

ответ

1

Я хотел бы использовать один из этих методов ...

fileContents := FileStream 
        readOnlyFileNamed: '/root/test' 
        do: [:f | f contents ]. 

Используя форму выше блок автоматически закрывает файл, вы можете Не забывай. Или ..

fileContents := (FileStream readOnlyFileNamed: '/root/test') 
        contentsOfEntireFile. 

#contentsOfEntireFile также автоматически закрывает файл, вам не нужно делать это снова.

На языке с блоками просто нет смысла вручную закрывать поток, когда доступны методы более высокого порядка, которые гарантируют вам, что вам этого не нужно.

+0

Спасибо, друг, это работает! В качестве плюса^fileContents код будет работать хорошо. Предположим, что введите «(MyInteger new) ReadFrom» в Workspace и распечатайте его, затем он вернет содержимое в указанном файле из readOnlyFileNamed в Workspace. – parsifal

1

Это должно работать:

|file fileContents| 
file := FileStream fileNamed: '/root/test'. 
fileContents := file contentsOfEntireFile. 
file close. 
1
|f| 
f:=StandardFileStream fileNamed: 'myFile.txt'. 
Transcript show: f upToEnd. 
f close. 

Я использую StandardFileStream для ввода сырого без обнаружения UTF-8 и читать upToEnd потому что чтение одного символа не считается apropriate.

+0

Друг, ответ, который вы передаете, отвечает на абсолютный каталог 'myFile.txt', а не на то, что программа хочет вести, все равно спасибо :) – parsifal

+0

Привет @parsifal. Независимо от того, размещаете ли вы абсолютный или относительный путь в кавычках, зависит от вас. Кроме того, эта версия будет работать в старых Squeaks и других Smalltalks (с FileStream вместо StandardFileStream). –

Смежные вопросы