3

我想从任何地方读取将在我的应用程序中打开的任何类型文件的内容,并将内容转换为 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 文件的内容是: 这是一个 hex 视图的测试文件。我得到的回应是:

\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 之外的任何类型文件的内容。请帮忙....

4

1 回答 1

1

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

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

如需更详细的了解,我建议您阅读NSString 类参考部分“从文件创建和初始化字符串”。

于 2013-06-08T00:52:53.530 回答