用cocoa保存二进制数据
我有一些代码执行命令用cocoa保存二进制数据,cocoa,binary,Cocoa,Binary,我有一些代码执行命令unzip-p myzip.zip picture.png,该命令打印picture.png的“二进制”数据。如果文件以正确的扩展名保存,打开时会出现错误,表明文件已损坏。所以我的问题是,使用cocoa将这些数据写入文件的正确方式是什么?现在我只是在使用[data writeToFile:@”/picture.png“原子化:否]。我知道二进制应该是1和0,但它给出了如下“二进制”代码: ?VaE?.?_QA?J+G:'GD?{C??!? ??٬?d?V ?E?e???8^?
unzip-p myzip.zip picture.png
,该命令打印picture.png的“二进制”数据。如果文件以正确的扩展名保存,打开时会出现错误,表明文件已损坏。所以我的问题是,使用cocoa将这些数据写入文件的正确方式是什么?现在我只是在使用[data writeToFile:@”/picture.png“原子化:否]代码>。我知道二进制应该是1和0,但它给出了如下“二进制”代码:
?VaE?.?_QA?J+G:'GD?{C??!? ??٬?d?V ?E?e???8^?t?-P?ʍ?psq???N?S:????,l^&?,_."? ??!a?Y`?,?-??.I ?ILD]?Ҙ佊??????????FLߊŜ?D??Y%?@O?#/??#
所有数据都保存在0和1中(在编写本文时)。当您将文件打印到显示器上时,它会给出带有保存值的ASCII字符
当将文件保存为“二进制”时,这基本上意味着不转换换行符。PNG保存正确,尽管“解压”可能解压错误,但zip已损坏或zip中的PNG已损坏
这是正确的:
[data writeToFile:@"/picture.png" atomically:YES];
原子性:建议是
代码的问题可能是NSData不包含有效的PNG数据,而只包含原始图像数据、GIF数据、JPEG数据或其他类型的非PNG数据。在第三次阅读了非常长的man
页面后,我发现了一种更好的方法,使用-d
参数来实现它