[英]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.