簡體   English   中英

如何在smalltalk中寫入txt文件

[英]How to write txt file in smalltalk

我嘗試使用此代碼:

f := 'testfile.txt' asFileReference.
f2 := f writeStream.
f2 nextPutAll: 'hello world'.
f2 close.
f content.

但我得到這個例外:

**FileDoesNotExistException**
'testfile.txt' asFileReference 
    writeStreamDo: [ :stream | stream << 'Hello, World!' ].

這應該有效。 但這是表達您之前所做工作的另一種方式,因此我懷疑某些書面許可是錯誤的或與此相關的某些內容。

只是為了補充 Estaban 的回應,Pharo 的一個令人驚訝的行為是 writeStreamDo 覆蓋現有文件,因此如果現有文件比新數據長,您最終會得到新數據和舊數據的尾端。 幸運的是,有一個簡單的解決方案:您可以簡單地包含 truncate。 所以稍微“更安全”的版本是:

    'testfile.txt' asFileReference 
writeStreamDo: [ :stream | stream truncate. stream << 'Hello, World!' ].

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM