Smalltalk Pharo文件系统:如何编写二进制文件?

Smalltalk Pharo文件系统:如何编写二进制文件?,smalltalk,pharo,Smalltalk,Pharo,from为我提供了Excel文件的文本数组中的二进制表示形式 ```` 测试用例表 ^#[80 75 3 4 20 0 6 0 8 0 0 0 33 0 199 122 151 144 120 1 0 0 32 6 0 0 19 0 8 2 91 67 111 110 116 101 110 116 95 84 121 112 101 115 93 46 120 109 108 32 162 4 2 40 160 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

from为我提供了Excel文件的文本数组中的二进制表示形式

````

测试用例表

^#[80 75 3 4 20 0 6 0 8 0 0 0 33 0 199 122 151 144 120 1 0 0 32 6 0 0 19 0 8 2 91 67 111 110 116 101 110 116 95 84 121 112 101 115 93 46 120 109 108 32 162 4 2 40 160 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

……0 109 108 80 75 1 2 45 0 20 0 6 0 8 0 0 33 0 126 148 213 45 209 1 0 250 10 0 0 0 16 0 0 0 0 0 0 0 0 233 36 0 0 120 108 47 99 108 99 67 104 97 105 110 46 120 109 108 80 75 5 6 0 0 13 0 74 3 0 232 38 0 0 0 0 0 0]

````

问题: 如何将其写入磁盘以查看它是哪种类型的文件

答复 (埃斯特班编辑)


./tabletratest1.xlsx'asFileReference writeStreamDo:[:stream |
流动
二元的;
下一步:自检xcelsheet]

最简单的方法如下:

 TabularResources testExcelSheet

所以诀窍就是告诉流“成为一个二进制文件”:)

请注意,目前存在一个兼容性问题,如果您想读取二进制数据,需要使用
#binaryReadStream
等。@MaxLeske--请您详细说明一下好吗?我根据EstebanLM的回答添加了一个代码段,它起了作用。为了澄清:我说的是读取二进制数据。读取二进制数据的方式目前构建的Tream不允许从ascii模式切换到二进制模式。相反,您应该使用
#binaryReadStream
等来获取二进制readstream。如果不这样做,您可能会遇到一些奇怪的事情发生在您的数据上。计划是尽快消除这些额外的消息,但目前它们还在。
'./file.bin' asFileReference writeStreamDo: [ :stream | 
    stream 
        binary; 
        nextPutAll: #[1 2 3 4 5 6 7 8 9 0] ]