下面这个程序 将 一个文件的内容 添加 到另外一个文件当中。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSFileHandle.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSData.h>
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSFileHandle *inFile,*outFile;
NSData *myBuffer;
//为文件file_1创建文件操作柄
inFile=[NSFileHandle fileHandleForReadingAtPath:@"file_1"];
if(inFile==nil)
{
NSLog(@"打开文件file_1失败");
return 1;
}
//为文件file_2创建文件操作柄
outFile=[NSFileHandle fileHandleForWritingAtPath:@"file_2"];
if(outFile==nil)
{
NSLog(@"打开文件file_2失败");
return 2;
}
//将文件file_2的操作位置设定为文件的末尾处
[outFile seekToEndOfFile];
//将文件file_1的内容读取出来,并且存储到缓冲区myBuffer
myBuffer=[inFile readDataToEndOfFile];
//将缓冲区myBuffer中的内容写入文件file_2
[outFile writeData:myBuffer];
//关闭文件file_1
[inFile closeFile];
//关闭文件file_2
[outFile closeFile];
[pool drain];
return 0;
} |
在运行 这个程序之前,我 先在可执行文件所在的目录中 创建 file_1 和 file_2这两个文件:

然后 再在这两个文件中 分别 输入 下面的内容:

最后 运行 这个程序。运行完 这个程序过后,再次 打开 file_2这个文件,我们 可以看到 如下的改变:

在这个程序当中,我 把 第二个文件file_2 打开过后,将 这个文件的操作位置 移动 到文件的末尾处。接着 将 第一个文件file_1的内容 写入 第二个文件file_2当中,写入的位置 刚好是 之前设定好的操作位置,也就是 文件的末尾处。
seekToEndOfFile这项措施 将 文件操作位置 设定 到文件末尾处之后,会将 这个位置 传递 给你,不过 你 可以选择 忽略。你 可以利用 这点 来获取 文件的尺寸。