【发布时间】:2014-07-17 07:12:41
【问题描述】:
我有以下代码用于读取特定大小长度的文件:
int chunksize = 1024;
NSData* fileData = [[NSFileManager defaultManager] contentsAtPath:URL];
NSString* fileName = [[message.fileURL lastPathComponent] stringByDeletingPathExtension];
NSString* extension = [[message.fileURL pathExtension] lastPathComponent];
NSFileHandle* fileHandle = [NSFileHandle fileHandleForReadingAtPath:[self retrieveFilePath:fileName andExtension:extension]];
file=@"test.png";
int numberOfChunks = ceilf(1.0f * [fileData length]/chunksize); //it s about 800
for (int i=0; i<numberOfChunks; i++)
{
NSData *data = [fileHandle readDataOfLength:chunksize];
....//some code
}
// read a chunk of 1024 bytes from position 2048
NSData *chunkData = [fileHandle readDataOfLength:1024 fromPosition:2048];//I NEED SOMETHING LIKE THIS!!
【问题讨论】:
-
floats 是怎么回事? (ceilf()和1.0f)? -
为了检索文件中的块总数并将实数转换为整数,我使用了该语法
-
根本不需要涉及浮点数。
-
你有更好的解决方案吗?:)
-
我认为这会起作用:
int numberOfChunks = ([fileData length] / chunksize) + (([fileData length] % chunksize) ? 1 : 0);
标签: ios nsfilehandle