iOS study Day12-FileHandle读取和写入

//打开一个文件,一次从中读取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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值