将文件的内容转换为NSString

时间:2013-06-07 21:13:45

标签: ios

我想从任何地方读取将在我的应用程序中打开的任何类型的文件的内容,并将内容转换为NSString,然后将此字符串转换为十六进制和ASCII。我使用以下代码来读取rtf文件的内容,但它返回了一些荒谬的值。

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filepath = [[path objectAtIndex:0]stringByAppendingPathComponent:@"/Inbox"];
NSString *filepath1 = [filepath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@",fileName]];
NSString *contents = [NSString stringWithContentsOfFile:filepath1 encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",contents);

rtf文件的内容是:这是十六进制视图的测试文档。我得到的回应是:

\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\f0\fs24 \cf0是十六进制视图的测试文档。

我需要阅读除zip和rar 以外的任何类型文件的内容。请帮帮....

1 个答案:

答案 0 :(得分:0)

如果您想阅读文本文件,那么您可以尝试这样的事情:

NSString* path = [[NSBundle mainBundle] pathForResource:@"test"
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                  error:NULL];

有关详细信息,建议您阅读NSString Class Reference部分“从文件创建和初始化字符串”。