2 wgzwing wing wgzwing_wing 于 2014.01.24 15:42 提问

iOS开发中,将word,excel,pdf等文档的二进制流保存到本地(iPhone或iPad)的问题

在iOS开发中,有如下方式创建文件(夹),并向文件中写入数据:
//获取文件路径
NSString *tmpDirectory = NSTemporaryDirectory();
NSString *filePath=[tmpDirectory stringByAppendingPathComponent : @"test.txt" ];

//文件内容
NSString *content = @"hello world!";
NSData * data = [content dataUsingEncoding:NSUTF8StringEncoding];

//创建含有内容的文件
NSFileManager * manager = [NSFileManager defaultManager];
[manager createFileAtPath:filePath contents:data attributes:nil];

我的问题是:
从服务端获取到了word,excel,pdf等文档的二进制流(注意:二进制流中不仅仅含有文档中的内容,还含有文档本身),转化为字符串为:0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD/////(此处省略xx字),
如果将这些数据按照上面的方法创建文件的话,文件中的内容为:0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD/////(此处省略xx字),
请问各位大神,如何才能将这个二进制流保存成为原先的文档,非常感谢!

5个回答

lynn_maple
lynn_maple   2014.05.08 20:59

你可以调用writeToPath: encode: error: 写入到设备指定的path 中

caozhy
caozhy   Ds   Rxr 2014.12.03 05:04
u013243469
u013243469   2014.11.26 10:41

我这里给个建议,别让后台给你二进制数据流,给你个URL加载,这样你使用webView显示数据不更方便?

wanawt
wanawt   2014.12.03 04:47

我用的是NSData的- (BOOL)writeToFile:(NSString )path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError *)error;
方法,而且要注意编码

orange_man
orange_man   2015.02.03 12:02

楼上正解,对于客户端开发,能少占用空间就少占用空间,如果只是单纯的现实,一个url解决一切。除非你要做专业的offic编辑器,那么就要down下来编辑了。

Csdn user default icon
上传中...
上传图片
插入图片