zoukankan      html  css  js  c++  java
  • oc文件基本读写及操作

    代码:

    #import <Foundation/Foundation.h>
    
    //NSString 写文件
    void stringWriteToFile(){
        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/test.txt"];
        NSString *s = @"test";
        [s writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
        
        
        NSString *str = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"
    string = %@",str);
        
        NSString *testtxt = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"
    test.text = %@",testtxt);
    }
    
    //NSArray 写文件
    void arrayWriteToFile(){
        NSArray *arr = @[@"a",@"b",@"b",@"c"];
        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/test2.txt"];
        [arr writeToFile:path atomically:YES];
        
        
        NSArray *a = [[NSArray alloc] initWithContentsOfFile:path];
        NSLog(@"array = 
    %@",a);
        
        NSString *s = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"
    test2.txt = 
    %@",s);
    }
    
    //NSDictionary 写文件
    void dictionaryWriteToFile(){
        NSDictionary *dic = @{@"a":@"1",
                              @"b":@"2",
                              @"c":@"3",
                              @"d":@"4"};
        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/test3.txt"];
        [dic writeToFile:path atomically:YES];
        
        NSDictionary *d = [[NSDictionary alloc] initWithContentsOfFile:path];
        NSLog(@"
    dictionary = 
    %@",d);
        
        NSString *s = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"
    test3.txt = 
    %@",s);
    }
    
    //atomically 是否原子级  即事务性写入
    //NSNumber、NSDate、NSData都可以通过writeToFile写入文件,该文件为纯文本类型,如果将后缀名改为plist即为xcode属性列表文件
    
    int main(int argc, const char * argv[]) {
        
        //该方法是创建一个实例,但是使的NSFileManager的单例模式将失去效果
        NSFileManager *fm0 = [[NSFileManager alloc] init];
        
        //defaultManager使用单例模式创建NSFileManager对象
        NSFileManager *fm1 = [NSFileManager defaultManager];
        
        NSFileManager *fm2 = [NSFileManager defaultManager];
        
        NSLog(@"
    fm0 = %p,fm1 = %p,fm2 = %p",fm0,fm1,fm2);
        
        NSData *data = [[NSString stringWithFormat:@"main"] dataUsingEncoding:NSUTF8StringEncoding];
        
        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/main.txt"];
        
        
        if (![fm1 fileExistsAtPath:path]) {
            if ([fm1 createFileAtPath:path contents: data attributes:nil]) {
                NSLog(@"create success");
                NSDictionary *d = [fm1 attributesOfItemAtPath:path error:nil];
                
                NSLog(@"
    attributesOfItemAtPath = 
    %@",d);
                
                //NSFileSize是预定义的文件属性key,可通过查看系统文件获取其他属性key并通过
                //以下方法获取其属性值
                NSNumber *filesize = [d valueForKey:NSFileSize];
                
                NSLog(@"
    filesize = %@",filesize);
                
                //读文件
                NSData *data1 = [fm1 contentsAtPath:path];
                
                NSString *s = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
                
                //文件系统的属性
                //总空间,已用空间,可用空间,文件数量,
                NSLog(@"
    attributesOfFileSystemForPath = 
    %@",[fm1 attributesOfFileSystemForPath:path error:nil]);
                
                NSLog(@"
    main.txt = %@",s);
            }
        }
        else{
            
            
            NSString *copypath = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/main_copy.txt"];
            [fm1 copyItemAtPath:path toPath:copypath error:nil];
            
            
            //重命名可以目标路径与主路径一致但是文件名不同
            NSString *movepath = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/main_move.txt"];
            [fm1 moveItemAtPath:path toPath:movepath error:nil];
            
            //删除文件
            if ([fm1 removeItemAtPath:path error:nil]) {
                NSLog(@"remove %@ success",path);
            }
            if ([fm1 removeItemAtPath:copypath error:nil]) {
                NSLog(@"remove %@ success",copypath);
            }
            if ([fm1 removeItemAtPath:movepath error:nil]) {
                NSLog(@"remove %@ success",movepath);
            }
        }
        
        stringWriteToFile();
        
        arrayWriteToFile();
        
        dictionaryWriteToFile();
        
        return 0;
    }

    结果:

    2015-03-08 21:18:26.064 NSFileManagerDemo[1686:79942] 
    fm0 = 0x1001145d0,fm1 = 0x100114620,fm2 = 0x100114620
    2015-03-08 21:18:26.075 NSFileManagerDemo[1686:79942] remove /Users/yoran_yang/Documents/main_copy.txt success
    2015-03-08 21:18:26.076 NSFileManagerDemo[1686:79942] remove /Users/yoran_yang/Documents/main_move.txt success
    2015-03-08 21:18:26.076 NSFileManagerDemo[1686:79942] 
    string = test
    2015-03-08 21:18:26.077 NSFileManagerDemo[1686:79942] 
    test.text = test
    2015-03-08 21:18:26.078 NSFileManagerDemo[1686:79942] array = 
    (
        a,
        b,
        b,
        c
    )
    2015-03-08 21:18:26.078 NSFileManagerDemo[1686:79942] 
    test2.txt = 
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <array>
        <string>a</string>
        <string>b</string>
        <string>b</string>
        <string>c</string>
    </array>
    </plist>
    2015-03-08 21:18:26.079 NSFileManagerDemo[1686:79942] 
    dictionary = 
    {
        a = 1;
        b = 2;
        c = 3;
        d = 4;
    }
    2015-03-08 21:18:26.079 NSFileManagerDemo[1686:79942] 
    test3.txt = 
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>a</key>
        <string>1</string>
        <key>b</key>
        <string>2</string>
        <key>c</key>
        <string>3</string>
        <key>d</key>
        <string>4</string>
    </dict>
    </plist>
    Program ended with exit code: 0
  • 相关阅读:
    Office Shared-Addin : Favorite的下载、安装和使用(2020.2.22)
    VBA编程常用词汇英汉对照表
    Excel-DNA自定义函数的参数智能提示功能:ExcelDna.IntelliSense1.1.0.rar
    VSTO开发中级教程 配套资源下载
    TreeviewEditor.rar
    FaceIDViewer.rar
    imageMso7345.rar
    VisualStudioAddin2016Setup.rar
    VBE2014_Setup_20160709.rar
    documen.write 和 innerHTML 的区别?
  • 原文地址:https://www.cnblogs.com/yoran-yang/p/4322289.html
Copyright © 2011-2022 走看看