objective-c I/O

NSFileManager :

         管理文件和目录,创建删除移动复制文件,


NSFileHandle:

         读取文件内容


NSURL:

         读取网络资源


NSBundle:

         读取项目内部资源


        NSData* data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://blog.csdn.net/qingchunweiliang?viewmode=contents"]];
        
        NSString* s=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        
        NSLog(@"%@",s);
        
        
        
        
        s=[[NSString alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://blog.csdn.net/qingchunweiliang?viewmode=contents"] encoding:NSUTF8StringEncoding error:nil];
        
        NSLog(@"%@",s);
        

打印部分内容如下

2015-10-07 16:09:29.910 testt[1316:64231] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    
<head>   
    
     
    <script type="text/javascript" src="http://c.csdnimg.cn/pubfooter/js/tracking.js" charset="utf-8"></script>  

    <script type="text/javascript">
        var protocol = window.location.protocol;
        document.write('<script type="text/javascript" src="' + protocol + '//csdnimg.cn/pubfooter/js/repoAddr2.js?v=' + Math.random() + '"></' + 'script>');
    </script>

     <script id="allmobilize" charset="utf-8" src="http://a.yunshipei.com/46aae4d1e2371e4aa769798941cef698/allmobilize.min.js"></script>
 <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />

    <title>青春微凉


Mac OS X 路径

      相对路径:不以斜线开头的路径都是相对路径。 例: abc.m  表示当前路径下的abc.m文件

      绝对路径:以斜线开头的路径,绝对路径是唯一的。例: /User/abc 代表跟目录下的User目录下的abc子目录


 /////////////

     ~  代表当前用户的home目录,例 :当前用户为abc,则~就代表 /Users/abc 目录。    ~xyz 表示xyz用户目录 即 /Users/xyz

     . 代表当前目录

     ..   代表当前目录的上一级目录



NSFileManager 用例
        
        NSFileManager* fm=[NSFileManager defaultManager];

        [fm createDirectoryAtPath:@"xyz/abc"
                    withIntermediateDirectories:YES //如果父目录不存在则创建父目录
                       attributes:nil error:nil];
        
        [fm removeItemAtPath:@"xtz" error:nil];
        
        [fm createFileAtPath:@"1.txt" contents:[@"abc" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
        
        [fm copyItemAtPath:@"1.txt" toPath:@"2.txt" error:nil];
        
        //获取指定路径下的文件和目录
        NSLog(@"当前目录下文件");
        NSArray*arr=[fm contentsOfDirectoryAtPath:@"." error:nil];
        for (NSString* s in arr) {
            NSLog(@"%@",s);
        }
        
        
        
        NSLog(@"\n\n是否存在  %d",      [fm fileExistsAtPath:@"1.txt" ]     );
        
        NSLog(@"是否可读  %d",      [fm isReadableFileAtPath:@"1.txt" ]     );
        
        NSDictionary* dic=[fm attributesOfItemAtPath:@"1.txt" error:nil];
        NSLog(@"文件创建日期   %@" ,    [dic fileCreationDate]   );
        
        

打印如下

2015-10-07 17:02:56.717 testt[1654:80464] 当前目录下文件
2015-10-07 17:02:56.718 testt[1654:80464] 1.txt
2015-10-07 17:02:56.719 testt[1654:80464] 2.txt
2015-10-07 17:02:56.719 testt[1654:80464] testt
2015-10-07 17:02:56.719 testt[1654:80464] xyz
2015-10-07 17:02:56.719 testt[1654:80464] 

是否存在  1
2015-10-07 17:02:56.719 testt[1654:80464] 是否可读  1
2015-10-07 17:02:56.728 testt[1654:80464] 文件创建日期   2015-10-07 09:02:56 +0000


顺便吐糟一下oc, 职责相当混乱 NSDictionary本应该作为通用的映射处理类,却掺杂进了文件相关的操作, NSString本应该只是负责字符串相关的操作,去掺杂进了网络和文件读写的操作,这点就不如java条理



·








 

你可能感兴趣的:(Objective-C)