目标C - 获取iPhone中文件内容的大小



正在为iPhone编写一个应用程序,以使用NSData读取文本文件。

NSFileHandle *fileRead;
// this may lead to crash or memory issue, if the file size is about 10 mb or more
NSData *data =   [fileRead readDataOfLength:(entire contents of the file)]; 

例如,如果文件大小为 8 kb,我们可以在每个周期 8 次迭代中读取它 1kb。

在读取文件之前,我们如何找到文件的大小,contents.so 我们可以以优化的方式编写代码以有效地读取文件?

请给我你的建议。

iPhone具有所有标准的POSIX API,因此您可以使用stat("file.txt",&st),其中st是"struct stat"。"st.st_size"成员将为您提供以字节为单位的文件大小。

如果您真的想读取整个文件,只需使用 readDataToEndOfFile,而不必担心事先确定长度。

从 NSFileHandle 中,您可以先按 seekToEndOfFile 然后按 offsetInFile 找到长度。如果你有实际的文件名,你可以使用 NSFileManager 的attributesOfItemAtPath:error:来检索长度(与 C 的 stat 一样)。或者,就此而言,您实际上可以在 NSFileHandle 的 fileDescriptor 方法返回的文件描述符上使用 statfstat

相关内容

  • 没有找到相关文章

最新更新