第四天(文件操作)

01-文件管理器

 1 #import <Foundation/Foundation.h>
 2 #import "User.h"
 3
 4 int main(int argc, const char * argv[])
 5 {
 6
 7     @autoreleasepool {
 8
 9
10         //1.文件管理器
11         NSFileManager * f1 = [NSFileManager defaultManager];
12         NSLog(@"%p",f1);
13
14         NSFileManager * f2 = [NSFileManager defaultManager];
15         NSLog(@"%p",f2);
16
17         NSFileManager * f3 = [[NSFileManager alloc] init];
18         NSLog(@"f3 %p",f3);
19
20         NSFileManager * f4 = [NSFileManager defaultManager];
21         NSLog(@"%p",f4);
22
23         //在整个程序没有退出之前,只需要创建一次,我们就可以把它写成单利模式
24         //简单的单例模式
25         User * u1 = [User defaultUser];
26         u1.age = 10;
27
28
29         NSLog(@"u1 %p",u1);
30
31
32         User * u2 = [User defaultUser];
33
34         NSLog(@"u2 %p age = %d",u2,u2.age);
35
36         User * u3 = [[User alloc] init];
37
38         NSLog(@"u3 %p",u3);
39
40         //1.组合模式,(聚合模式)
41         //2.单利模式
42         //3.策略模式(封装变化点),block
43         //4.向上抽象 (protocol(协议))
44         //5.享元设计模式(NSString池原理)
45     }
46     return 0;
47 }
1 #import <Foundation/Foundation.h>
2
3 @interface User : NSObject
4
5 @property (nonatomic,assign)int age;
6
7 + (User *)defaultUser;
8
9 @end
 1 #import "User.h"
 2
 3 @implementation User
 4
 5 //静态变量,整个程序运行完成的时候才会被释放掉,mian函数运行完成
 6 static User * instance = nil;
 7
 8 + (User *)defaultUser
 9 {
10 //    return [[self alloc] init];
11
12     if (instance == nil)
13     {
14         instance = [[self alloc] init];
15     }
16     return instance;
17
18 }
19
20 @end

02-获取文件属性

 1 #import <Foundation/Foundation.h>
 2
 3 int main(int argc, const char * argv[])
 4 {
 5
 6     @autoreleasepool {
 7
 8         /*
 9         NSString * str = @"www.itcast.cn";
10         NSError * error;
11         BOOL isWriteSuccess = [str writeToFile:@"/Users/aplle/Desktop/test.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
12         if (isWriteSuccess)
13         {
14             NSLog(@"创建成功");
15         }
16         else
17         {
18             NSLog(@"error %@",error);
19         }
20          */
21
22         //1.获取文件管理器
23         NSFileManager * fileManager = [NSFileManager defaultManager];
24         NSString * path = @"/Users/aplle/Desktop/test.txt";
25         NSError * error;
26         NSDictionary * dic = [fileManager attributesOfItemAtPath:path error:&error];
27
28
29         NSLog(@"dic %@",dic);
30
31         if (error == nil)
32         {
33            NSDate * date = [dic objectForKey:NSFileCreationDate];
34             NSString * size = [dic objectForKey:NSFileSize];
35             NSLog(@" date = %@, size = %@",date,size);
36         }
37     }
38     return 0;
39 }

03-获取目录下的文件与子目录列表
 1 #import <Foundation/Foundation.h>
 2
 3 int main(int argc, const char * argv[])
 4 {
 5
 6     @autoreleasepool {
 7
 8         /*
 9         //1.
10         NSFileManager * fileManager = [NSFileManager defaultManager];
11         NSString * path = @"/Users/aplle/Desktop/装机";
12         NSError * error;
13
14         //只能够火的目标目录下,第一级目录
15         NSArray * array = [fileManager contentsOfDirectoryAtPath:path error:&error];
16         NSLog(@"array %@",array);
17         */
18
19         //2
20         NSFileManager * fileManager = [NSFileManager defaultManager];
21         NSString * path = @"/Users/aplle/Desktop/other";
22         NSError * error;
23         //能够逐级的获得所有子集的目录
24         NSArray * array = [fileManager subpathsOfDirectoryAtPath:path error:&error];
25         NSLog(@"array %@",array);
26
27
28
29
30
31     }
32     return 0;
33 }

04-管理目录

 1 #import <Foundation/Foundation.h>
 2
 3 int main(int argc, const char * argv[])
 4 {
 5
 6     @autoreleasepool {
 7
 8         /*
 9         //1创建目录
10         NSFileManager * fileManager = [NSFileManager defaultManager];
11         NSString * path = @"/Users/aplle/Desktop/myfolder/aaa";
12         NSError * error;
13
14         //withIntermediateDirectories YES 逐级创建文件夹,NO表示只能够创建一级目录
15
16         BOOL isCreateSuccess = [fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error];
17         if (isCreateSuccess)
18         {
19             NSLog(@"创建成功");
20         }
21         else
22         {
23             NSLog(@"error %@",error);
24         }
25         */
26
27         //2 移动目录 移动就是剪切操作
28         /*
29         NSFileManager * fileManager = [NSFileManager defaultManager];
30         NSString * path = @"/Users/aplle/Desktop/myfolder";
31         NSString * pathTo = @"/Users/aplle/Desktop/newmyfolder";
32         NSError * error ;
33         BOOL isMoveSuccess = [fileManager moveItemAtPath:path toPath:pathTo error:&error];
34         if (isMoveSuccess)
35         {
36             NSLog(@"移动成功");
37         }
38         else
39         {
40             NSLog(@"error %@",error);
41         }
42          */
43
44         //3.删除
45         /*
46         NSFileManager * fileManager = [NSFileManager defaultManager];
47         NSString * path = @"/Users/aplle/Desktop/newmyfolder";
48         NSError * error;
49         BOOL isRemoveSuccess = [fileManager removeItemAtPath:path error:&error];
50         if (isRemoveSuccess)
51         {
52             NSLog(@"删除成功");
53         }
54         else
55         {
56             NSLog(@"erro %@",error);
57         }
58          */
59
60         //4.拷贝文件
61         NSFileManager * fileManager = [NSFileManager defaultManager];
62         NSString * path = @"/Users/aplle/Desktop/myfolder";
63         NSString * pathTo = @"/Users/aplle/Desktop/newmyfolder";
64         NSError * error;
65         BOOL isCopySuccess = [fileManager copyItemAtPath:path toPath:pathTo error:&error];
66         if(isCopySuccess)
67         {
68             NSLog(@"拷贝成功");
69         }
70         else
71         {
72             NSLog(@"error %@",error);
73         }
74
75     }
76     return 0;
77 }05-管理文件
 1 #import <Foundation/Foundation.h>
 2
 3 int main(int argc, const char * argv[])
 4 {
 5
 6     @autoreleasepool {
 7
 8         //1.获得文件
 9         //mp3.mp4 rmvb mkv pdf doc txt
10         /*
11         NSString * path = @"/Users/aplle/Desktop/屏幕快照 .png";
12         NSData * data = [NSData dataWithContentsOfFile:path];
13         NSLog(@"%ld",data.length);
14
15         NSFileManager * fileManager = [NSFileManager defaultManager];
16         NSString * pathTo = @"/Users/aplle/Desktop/屏幕快照副本.png";
17
18        BOOL isCreateSuccess =  [fileManager createFileAtPath:pathTo contents:data attributes:nil];
19
20         if (isCreateSuccess)
21         {
22             NSLog(@"创建成功");
23         }
24         else
25         {
26             NSLog(@"创建失败");
27         }
28          */
29
30         /*
31         //2.移动文件 相当于剪切操作
32         NSFileManager * fileManager  = [NSFileManager defaultManager];
33         NSString * path  = @"/Users/aplle/Desktop/屏幕快照 .png";
34         NSString * pathTo = @"/Users/aplle/Desktop/newmyfolder/屏幕屏幕.png";
35         NSError * error;
36         BOOL ismoveSuccess = [fileManager moveItemAtPath:path toPath:pathTo error:&error];
37         if (ismoveSuccess)
38         {
39             NSLog(@"移动成功");
40         }
41         else
42         {
43             NSLog(@"error %@",error);
44         }
45         */
46
47         NSFileManager * fileManager  = [NSFileManager defaultManager];
48         NSString * path  = @"/Users/aplle/Desktop/屏幕快照副本.png";
49         NSError * error;
50         BOOL isremove = [fileManager removeItemAtPath:path error:&error];
51         if (isremove)
52         {
53             NSLog(@"删除成功");
54         }
55         else
56         {
57             NSLog(@"error %@",error);
58         }
59
60     }
61     return 0;
62 }

06-使用NSData处理数据

 1 #import <Foundation/Foundation.h>
 2
 3 int main(int argc, const char * argv[])
 4 {
 5
 6     @autoreleasepool {
 7
 8         //音频文件,文本文件,视频文件就必须使用NSData数据类
 9         /*
10         NSString * str = @"www.itcast.cn";
11         NSError * error;
12         [str writeToFile:@"/Users/aplle/Desktop/text.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
13         */
14         /*
15         NSString * path = @"/Users/aplle/Desktop/text.txt";
16         //把目标文件加载到内存中.
17         //NSData 是不可变长度的Data类型,只能够通过一次加载完成所有的数据
18         NSData * data = [NSData dataWithContentsOfFile:path];
19
20         NSLog(@"data length %ld",data.length);
21         NSString * pathTo = @"/Users/aplle/Desktop/nextext.txt";
22         //把加载到内存中的文件,写入到指定的位置
23         BOOL isWriteSuccess = [data writeToFile:pathTo atomically:YES];
24
25         if (isWriteSuccess)
26         {
27             NSLog(@"写入成功");
28         }
29         else
30         {
31             NSLog(@"写入失败");
32         }
33           */
34
35         //当需要把多个NSData数据拼接成一个数据存储的时候,就要想到使用NSMutableData这个类型
36         NSString * str1 = @"好好学习";
37         NSString * str2 = @"天天向上";
38         NSString * str3 = @"今天休息";
39
40         NSMutableData * muData = [[NSMutableData alloc] init];
41
42         NSData * d1 = [str1 dataUsingEncoding:NSUTF8StringEncoding];
43         NSData * d2 = [str2 dataUsingEncoding:NSUTF8StringEncoding];
44         NSData * d3 = [str3 dataUsingEncoding:NSUTF8StringEncoding];
45
46         //appendData 能够把nsdata对象加入到 muData对象中
47         [muData appendData:d1];
48         [muData appendData:d2];
49         [muData appendData:d3];
50
51         NSString * path = @"/Users/aplle/Desktop/传智播客校训.txt";
52         //NSMutableData是继承至NSData的所以可以调用writeToFile 把数据写入到一个指定的目录下
53         BOOL iswriteSucess = [muData writeToFile:path atomically:YES];
54         if (iswriteSucess)
55         {
56             NSLog(@"创建成功");
57         }
58         else
59         {
60             NSLog(@"创建失败");
61         }
62
63
64
65
66
67     }
68     return 0;
69 }
时间: 2024-07-31 00:46:00

第四天(文件操作)的相关文章

Html5 学习系列(四)文件操作API

原文:Html5 学习系列(四)文件操作API 引言 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或者跨浏览器.跨设备等情况下实现统一的表现,从另外一个角度来说就是让我们的web应用依赖了第三方的插件,而不是很独立,不够通用.在HTML5标准中,默认提供了操作文件的API让这一切直接标准化.有了操作文件的API,让我们的Web应用可以很轻松的通过JS来控制文件的读取.写入.文件夹.文件等一系列的操作,

分分钟钟学会Python - 第四章 文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') obj.write() # 写入 obj.read() # 读取 obj.close() #关闭 4.2 打开模式 r / w / a [只读只写字符串] * r+ / w+ / a+ [可读可写字符串] rb / wb / ab [只读只写二进制] * r+b / w+b / a+b [可读可写二进制] 4.3 操作 read() , 全部读到内存 read(1) 1表示一

python第四章文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') # 打开文件 obj.write() # 把内容写入文件 obj.read() # 读取文件内容 obj.close() # 关闭文件(保存文件,把内存上的数据写入到文件上-->硬盘上,01010101存储的) # 3步:1.打开文件. 2. 操作文件 3. 关闭文件 4.2打开文件 4.2.1语句 file = open('文件路径',mode = 'r',encoding

第四章文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') obj.write() obj.read() obj.close() with open... 4.2 打开模式 r / w / a r+ / w+ / a+ rb / wb / ab r+b / w+b / a+b 4.3 操作 read() , 全部读到内存 read(1) 1表示一个字符 obj = open('a.txt',mode='r',encoding='utf

python基础(十四)--文件操作

1,文件操作.    模特主妇护士老师.txt    1,文件路径:d:\模特主妇护士老师.txt    2,编码方式:utf-8 gbk ....    3,操作方式:只读,只写,追加,读写,写读.....        以什么编码方式储存的文件,就以什么编码打开进行操作. 只读:r          rb        f = open('模特主妇护士班主任',mode='r',encoding='utf-8')        content = f.read()        print(

MATLAB学习笔记(四)&mdash;&mdash;文件操作

首先,声明,如果学过C的话就可以不用看了,因为是一样的,只要注意一些系统变量的名字稍微变动了而已.都是基于ANSI C语言的标准库函数写的. (一)文件的打开与关闭 一.文件的打开 1.语法 fid=fopen(文件名,打开方式) 其中打开方式有如下: 简单来记,就是 (1)w就是写,r就是读 (2)加了"+"号就是可读可写 (3)w可以新建文件,r不可以新建文件 (4)a表示追写,而w表示写,即每次写都会清空文件里的东西. (5)如果加上"b"就是2进制,加上了&

第三周 项目五-数组做数据成员(四)文件操作-指针

/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:冷基栋 * 完成日期:2015年 3 月 21 日 * 版 本 号:v1.0 */ 代码 #include <iostream> #include <cstdlib> #include <fstream> using namespace std; const int N=500; class Salary { p

学习Linux笔记(四)--文件操作

学会cd命令: 绝对路径,相对路径(./或者../): 文件列表: ls -F(正斜杠表示目录)  -a(显示隐身)  -l(详细信息) -R(显示目录文件) -i(显示索引号) 过滤列表输出:ls -l test(这是关键词,可使用?或者通配符) 文件处理: touch创建一个空文件,-t指定时间戳: cp复制文件,-r递归复制文件,-R递归目录,-p保持复制时间于源文件一致: mv移动或重命名文件,rm删除文件,-r递归删除. mkdir目录创建,rmdir删除空目录. stat:查看文件统

三十四 Python文件操作

1 写文件 my_list = ["1", "2", "3"] my_file = open("myfile.txt", "w") for item in my_list: my_file.write(item + "\n") my_file.writelines(my_list) // 写多个 my_file.close() 2  读文件 my_file = open("my

C语言第十二讲,文件操作.

C语言第十二讲,文件操作. 一丶文件操作概述 在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样 操作文件的步骤 打开文件->读写文件->关闭文件. 二丶文件流的概述. 文件流称为 输入流和输出流.  其实就是从内存写数据到磁盘.和从磁盘读数据到内存. 内存->磁盘  称为输出流. 输出到磁盘 磁盘->内存 称为输入流.读取到内存. 三丶文件的打开和关闭. 1.操作原型. FILE *fopen(char