Sim*_*ens 2 file bytestream swift
我有一个几百字节的字符串和一些 Int32 值。我想将这些逐字写入文件。
我尝试了许多建议的解决方案,但没有一个对我有用。我在文件中得到了多余的括号、空格或逗号。
谁能提出一个简单可靠的解决方案?
我以为我的问题很清楚,但在阅读评论后,我简化了它。
如何将“12345”写入和/或附加到文件,以便文件包含以下十六进制值: 3132333435 ?
通过编写 NSData 字符串,我可以获得的最佳结果是 <3132333435>。
我可以使用此链接获得所需的结果:是否 swift 有用于写入字节流的协议?,但我无法将数据附加到我创建的文件中。
我建议使用 NSFileHandle。
我是这样测试的。我从一个包含“测试”一词的文件~/Desktop/test.txt开始。然后我运行了这个代码:
let s = "12345"
let d = s.dataUsingEncoding(NSASCIIStringEncoding)!
let path = ("~/Desktop/test.txt" as NSString).stringByExpandingTildeInPath
if let fh = NSFileHandle(forWritingAtPath: path) {
fh.seekToEndOfFile()
fh.writeData(d)
fh.closeFile()
}
Run Code Online (Sandbox Code Playgroud)
结果是文件现在包含
testing12345
Run Code Online (Sandbox Code Playgroud)
十六进制转储显示底层字节是:
74 65 73 74 69 6E 67 31 32 33 34 35
Run Code Online (Sandbox Code Playgroud)
我相信这就是你所说的你想要达到的目标。
另外,还有一条评论:
我能得到的最好结果是
<3132333435>
听起来好像问题仅仅是您不知道如何读取控制台输出。该<
和>
是不是真正的文件; 它们只是数据的控制台表示的一部分。最好使用 BBEdit / TextWrangler 或专用的十六进制转储器来查看文件的实际字节。
归档时间: |
|
查看次数: |
7957 次 |
最近记录: |