我正在使用 Pharo 6.1 图像进行一些 CSV 文件处理。有时我的图像变得没有响应——我必须从任务管理器中终止 Pharo VM。
是否有必要使用类似的东西:
ensure:[toStream close]
ensure:[fromStream close]
什么是使用 Pharo 读取特别是写入文件的简单但可靠的方法?
我正在使用 Pharo 6.1 图像进行一些 CSV 文件处理。有时我的图像变得没有响应——我必须从任务管理器中终止 Pharo VM。
是否有必要使用类似的东西:
ensure:[toStream close]
ensure:[fromStream close]
什么是使用 Pharo 读取特别是写入文件的简单但可靠的方法?
图像并非真的没有响应,但 UI 线程肯定是当您执行长操作(如读取大 CSV 文件)时。
最好的办法是做一个过程。
像:
[ target doSomeLongThing ] fork.
您可以从世界菜单在进程浏览器中查看进程并在那里终止它。
现在,在操场上以交互方式尝试事物时,这并不是人们真正会考虑的事情。
我为缓解这种情况所做的工作是双重的:
我希望中断键在所有情况下都能正常工作,但它不会,而且是一个非常烦人的问题。
我认为图像应该被视为可丢弃的工件,CI 工作应该定期(如每天)构建它们,以便我们有一些恢复路径。
这并不是很酷,因为是的,使用图像并能够在进行探索时无需一直重建东西就可以返回它,这不应该让我们因 UI 线程阻塞而感到沮丧。我讨厌那个。我的图像因某些 Glamour 问题而在重新启动时卡住了,这令人愤怒,因为它无法调试或任何东西。
您还可以使用:
(FileLocation imageDirectory / 'somefile.csv') asFileReference readStreamDo: [ :stream |
"do something with the stream" ].
这将为您确保:位。清洁器。更轻松。
对于 CSV,也可以试试 NeoCSV,因为它也会为您处理文件。
高温高压