//打开一个文件,一次从中读取128个字节,并将其写到终端。
//从终端接受输入任意长度的字符串内容并写入文件,当输入“quit”的时候停止接收输入。
//提示;可以利用FileHandle的方法
//fileHandleWithStandardOutput
//fileHandleWithStandardInput
//来获得终端输出的句柄。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool
{
// 找到桌面目录,复制给path
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES) lastObject];
path = [path stringByAppendingPathComponent:@"wj.txt"];
// 创建FileHandle
NSFileHandle* filehandle = [NSFileHandle fileHandleForUpdatingAtPath:path];
//写一个文件,桌面/wj.txt, 内容是字母
NSFileManager *filemanage = [NSFileManager defaultManager];
[filemanage createFileAtPath:path contents:[@"01abcdefghijklmnopqrstuvwxyz02abcdefghijklmnopqrstuvwxyz03abcdefghijklmnopqrstuvwxyz04abcdefghijklmnopqrstuvwxyz05abcdefghijklmnopqrstuvwxyz06abcdefghijklmnopqrstuvwxyz07abcdefghijklmnopqrstuvwxyz08abcdefghijklmnopqrstuvwxyz09abcdefghijklmnopqrstuvwxyz1001abcdefghijklmnopqrstuvwxyz02abcdefghijklmnopqrstuvwxyz03abcdefghijklmnopqrstuvwxyz04abcdefghijklmnopqrstuvwxyz05abcdefghijklmnopqrstuvwxyz06abcdefghijklmnopqrstuvwxyz07abcdefghijklmnopqrstuvwxyz08abcdefghijklmnopqrstuvwxyz09abcdefghijklmnopqrstuvwxyz1001abcdefghijklmnopqrstuvwxyz02abcdefghijklmnopqrstuvwxyz03abcdefghijklmnopqrstuvwxyz04abcdefghijklmnopqrstuvwxyz05abcdefghijklmnopqrstuvwxyz06abcdefghijklmnopqrstuvwxyz07abcdefghijklmnopqrstuvwxyz08abcdefghijklmnopqrstuvwxyz09abcdefghijklmnopqrstuvwxyz1001abcdefghijklmnopqrstuvwxyz02abcdefghijklmnopqrstuvwxyz03abcdefghijklmnopqrstuvwxyz04abcdefghijklmnopqrstuvwxyz05abcdefghijklmnopqrstuvwxyz06abcdefghijklmnopqrstuvwxyz07abcdefghijklmnopqrstuvwxyz08abcdefghijklmnopqrstuvwxyz09abcdefghijklmnopqrstuvwxyz10" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
// 根据字节数读取一段数据,并进行偏移,假设字节为128
int j = 128;
int i = j;
NSData *nsdata = [filehandle readDataOfLength:j];
while ([nsdata length]>0)
{
NSLog(@"%@",[[[NSString alloc] initWithData:nsdata encoding:NSUTF8StringEncoding] autorelease]);
[filehandle seekToFileOffset:i];
nsdata = [filehandle readDataOfLength:j];
sleep(1);
i += j;
};
// 新建FileHandle 设置句柄为终端
filehandle = [NSFileHandle fileHandleWithStandardInput];
// FileHandle2 设置句柄为桌面上的原文件
NSFileHandle *filehandle2 =[NSFileHandle fileHandleForUpdatingAtPath:path];
NSString *strtemp ;
// 设置循环,达到目的: 当字符串中不含quit时,将终端数据通过data传入文件。
while (1)
{
NSLog(@"请测试写入:\n");
nsdata = [filehandle availableData];
[filehandle2 seekToEndOfFile];
strtemp = [[[NSString alloc] initWithData:nsdata encoding:NSUTF8StringEncoding] autorelease] ;
if ([strtemp rangeOfString:@"quit"].length > 0) {
break;
}
[filehandle2 writeData:nsdata];
}
}
return 0;
}