MAC应用 如何连续在一个文件里面追加字符串( NSFileHandle定位到文件末尾)

- (IBAction)OnBT_Click1:(id)sender
{
    NSString *str_all=@"";
    NSError *error = nil;
    NSString *filePath = @"/Users/mac2/Documents/1.TXT";
    BOOL bSaved=[str_all writeToFile:filePath
                              atomically:NO
                                encoding:NSUTF8StringEncoding
                                   error:&error];
    printf("save :%d",bSaved);

    if(bSaved == YES)
    {
        m_text1.stringValue = @"Save OK!";
    }
    else
    {
        m_text1.stringValue = @"Save Failure!";
    }
    
    int i=1;
    int count = 601;
    NSString *str_item=nil;
    int per_value =100 ;
    int total= count/per_value;
    for (i=0; i<count;i++)
    {
        str_item =[NSString stringWithFormat:@"\n (%d) item value is :%d x %d = %d",i,i,i,i*i];
        str_all = [str_all stringByAppendingFormat:@"%@",str_item];
        if (0==(i%per_value) && i<(total*per_value))
        {
            printf("\n current value is %d.",i);
            [self appendToFile:filePath Text:str_all];
            str_all=@"";
        }
        printf("%s",[str_item UTF8String]);
    }
    int rest_value =count - (total*per_value) ;
    if (rest_value>0)
    {
        printf("\n current value is %d.",i);
        [self appendToFile:filePath Text:str_all];
        str_all=@"";
    }
}

-(void)appendToFile:(NSString *)FileName
               Text:(NSString *)appent_text
{
    NSFileHandle  *outFile;
    NSData *buffer;
    outFile = [NSFileHandle fileHandleForWritingAtPath:FileName];
    if(outFile == nil)
    {
        NSLog(@"Open of file for writing failed");
    }
    
    //找到并定位到outFile的末尾位置(在此后追加文件)
    [outFile seekToEndOfFile];
    
    //读取inFile并且将其内容写到outFile中
    
    NSString *bs = [NSString stringWithFormat:@"%@",appent_text];
    buffer = [bs dataUsingEncoding:NSUTF8StringEncoding];
    
    [outFile writeData:buffer];
    
    //关闭读写文件
    [outFile closeFile];
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值