openlang

用 Smalltalk 写入文本文件

我在测试下面这段代码。

entry := 'notes.txt' asFileReference.
writer := entry writeStream.
writer nextPutAll: 'hello world'.
writer close.
entry content.

结果出现了这个异常。

**FileDoesNotExistException**
从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接
    'notes.txt' asFileReference
      writeStreamDo: [ :sink | sink << 'Hello, World!' ].

    这样应该能成功。不过这只是把你之前的做法换了一种写法,所以我怀疑是写入权限不对,或者环境里有相关的问题。

    从英语翻译查看原文
  2. 固定链接

    补充一下 Elain 的回复,Pharo 的一个意外之处是 writeStreamDo 会覆盖现有文件,如果旧文件比新数据长,结果就会是新内容加上旧内容末尾剩下的部分。好在解决起来很简单,只要在块里加入 truncate 就行。下面是一个稍微更“安全”的版本。

    'notes.txt' asFileReference
      writeStreamDo: [ :sink | sink truncate. sink << 'Hello, World!' ].
    从英语翻译查看原文

同一个问题的其他角度

  1. 通过 Google Colab 使用 MATLAB

    能在 Google Colab (云端的 Jupyter) 中使用 MATLAB 命令吗? 例如,我想在 Google Colab 中调用 Risk Management Toolbox 的函数,比如 bin(vbt, Name, Value)、tb…

    回复 2最近活动 matlab
  2. gdb 能否按地址在汇编指令处设置断点?

    我的尝试如下。 不过,看起来并不存在这条命令。 gdb 能实现这样的功能吗?

    回复 2最近活动 assembly
  3. Playwright 断言能否允许两个文本值中的任意一个?

    我想验证文本中包含 one 或 two。 在 Playwright 中能这样实现吗? 同样的写法也能用在句子内部吗,比如下面这样

    回复 2最近活动 typescript