zoukankan      html  css  js  c++  java
  • [object-c 2.0 程序设计]object-c file handle (二)

    //
    //  main.m
    //  cmdTry
    //
    //  Created by Calos Chen on 2017/8/21.
    //  Copyright © 2017年 Calos Chen. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "class4.m"
    #import "NSObject_class5.h"
    
    @class Fraction;
    @interface Fraction : NSObject
    {
        int numberator;
        int denominator;
        NSString* name;
        @public
        double price;
        Fraction *myf;
        
    }
    @property double price;
    -(void) print;
    -(void) setNumberator: (int)n;
    -(void) setName: (NSString*)na;
    -(void) setInfo: (int) id name:(NSString*)name;
    
    
    @end
    
    @implementation Fraction
    
    @synthesize price;
    
    -(void) print
    {
        name= [name getBy:23 andName:@"Ok"];//
        NSLog(@"%i it is %@",numberator,name);
    }
    -(void) setNumberator:(int)n
    {
        price=5;
        numberator=n;
    }
    -(void)setName:(NSString *)na{
        name=na;
    }
    
    -(void) setInfo:(int)id name:(NSString *)na{
        id=id;
        name=na;
    }
    
    @end
    
    //---- program section ----
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            // insert code here...
            NSLog(@"Hello, World!");
            NSLog(@"who are you!");
        }
        NSNumber *xdd;
        xdd=[NSNumber numberWithInt:45];
        
        NSLog(@"why is it");
        Fraction *myf= [[Fraction alloc] init];
        [myf setName:@"calos"];
        [myf print];
        double price=myf->price;
        
        int a1=5;
        float a2=3.23;
        double a3=3.44;
        char a4='c';
        int a5=(int)a2;
        for (int b=1; b<10;b++ ) {
            a5+=b;
        }
        myf.price=88;
        double b1=myf.price;
        BOOL isPrime=NO;
        NSLog(@"%i %f %e %c %i %c %g %e",a1,a2,a3,a4,a5,isPrime,b1,price);
        NSLog(@"end........");
      
        //file write
        NSFileManager* fm=[NSFileManager defaultManager];
        NSString* fname=@"a.txt";
        NSFileHandle* fh=[NSFileHandle new];
        NSData* data=nil;
        NSCoder* coder=[NSCoder new];
        [fm createFileAtPath:fname contents:nil attributes:nil];
        if([fm isReadableFileAtPath:fname]){
            [fh writeData:data];
        }
        else{
            [[fh initWithCoder:coder] writeData:data];
        }
        
        // 初始化管理类
        NSFileManager * manager = [NSFileManager
                                   defaultManager];
        
        // 路径
        NSString * DirectoryPath = [NSHomeDirectory()
                                    stringByAppendingPathComponent:@"/desktop/我的文件夹1/我的文件夹2"];
        
        NSError * error =
        nil;
        if ([manager
             createDirectoryAtPath:DirectoryPath
             withIntermediateDirectories:NO
             attributes:nil
             error:&error] !=
            YES) {
            //            NSString * str = [error localizedDescription];
            NSLog(@"创建失败");
        }else {
            //            NSString * str = [error localizedDescription];
            NSLog(@"创建成功");
        }
    
        
        //file handle
    
        NSFileHandle *inFile, *outFile;
        NSData *buffer;
        NSData* d1=[@"sss" dataUsingEncoding:NSUTF8StringEncoding];
        [[NSFileManager defaultManager] createFileAtPath:@"test.txt" contents:d1 attributes:nil];
        
        //打开testfile.txt文件用于读取操作
        inFile = [NSFileHandle fileHandleForReadingAtPath:@"testfile.txt"];
        
        if(inFile == nil)
        {
            NSLog(@"Open of testfile.txt for reading failed!");
            return 1;
        }
        
        //创建一个文件用于写数据(第一次是必要的)
        [[NSFileManager defaultManager] createFileAtPath:@"testout.txt" contents:nil attributes:nil] ;
        
        //打开testout.txt文件用于写入操作
        outFile = [NSFileHandle fileHandleForWritingAtPath:@"testout.txt"];
        
        if(outFile == nil)
        {
            NSLog(@"Open of testout.txt for writing failed!");
            return 2;
        }
        
        //
        [outFile truncateFileAtOffset:0];
        
        //从inFile中读取数据,并将其写入到outFile中
        buffer = [inFile readDataToEndOfFile];
        
        [outFile writeData:buffer];
        
        //关闭两个文件
        [inFile closeFile];
        [outFile closeFile];
        
        return 0;
    }
    
    //for today: 2017-08-21, I have read and practiced the first 153 pages of the object-c 2.0, now, I have known object-c classes and data types, and how to announce and implement the classes and class members, as well as functions in the class implementation. also property synthesize methods. loops.
    //homework: implement a new class, and new interface and fill the class with members and all tangible members, then use all of them. @class declaration. So, write a console program with object-c.
    

     目前可以使用 Object-c 的 file 处理, 可以操作目录,并读写文件, 控制台程序生成了正常的文件,感觉比较欣慰,文件处理也算蛮大的一步了,知道了一些 oc 常用的库处理,在渐渐地变熟练

  • 相关阅读:
    webpack3-loader和plugin的概念理解
    即将发布的ionic4有哪些激动人心的新特性
    使用腾讯tslint-config-alloy轻松搞定ionic项目中TSLint配置
    ionic2+ 中强制使安卓用ios样式的方法
    最新动态: 开源项目 ionic3-awesome — 实现fullScreenVideo
    c#开发windows 服务
    搭建NHibernate3.2+CodeFirst映射框架
    WCF
    MVC全局异常处理
    两只技术小白把初创电商卖了百万美元,现在他们决定把秘诀告诉你
  • 原文地址:https://www.cnblogs.com/hualiu0/p/7420431.html
Copyright © 2011-2022 走看看