OC 文件基本操作
//
// main.m
// oc_13
//
// Created by ma c on 15/12/17.
// Copyright (c) 2015年 博文科技. All rights reserved.
// #import <Foundation/Foundation.h>
#define FILEPATH @"/Users/mac/Desktop/"
#define FILEPATH1 @"/Users/mac/Desktop/bowen.txt" int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!"); //NSFileManager 文件管理类(操作文件)
//NSFileHandle 文件句柄(光标)类(操作文件内容) /*
NSFileManager 文件管理类(操作文件)
1.创建文件夹/文件
2.读取文件
3.拷贝文件
4.移动文件(重命名文件)
5.删除文件
6.杂项操作
7.文件遍历 NSFileHandle 文件句柄(光标)类(操作文件内容)
1.文件写入
2.文件读取 */
//----------NSFileManager 文件管理类(操作文件)---------// //单例模式
//创建文件
NSFileManager *fm = [NSFileManager defaultManager];
NSString *fileName = @"bowen.txt";
NSString *filePath = [FILEPATH stringByAppendingPathComponent:fileName];
NSString *content = @"here is a string";
NSData *fileData = [content dataUsingEncoding:NSUTF8StringEncoding]; BOOL flag = [fm createFileAtPath:filePath contents:fileData attributes:nil]; if (flag) {
NSLog(@"文件创建成功");
}
else
NSLog(@"文件创建失败"); //创建文件夹
NSFileManager *fm1 = [NSFileManager defaultManager]; NSString *directoryName = @"bowen";
NSString *directoryPath = [FILEPATH stringByAppendingPathComponent:directoryName]; BOOL flag1 = [fm1 createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil]; if (flag1) {
NSLog(@"文件夹创建成功");
}
else
NSLog(@"文件夹创建失败"); // 读取文件
NSFileManager *fm2 = [NSFileManager defaultManager]; NSString *fileName1 = @"bowen.txt";
NSString *filePath1 = [FILEPATH stringByAppendingPathComponent:fileName1]; NSData *fileData1 = [fm2 contentsAtPath:filePath1];
NSString *fileContents = [[NSString alloc] initWithData:fileData1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",fileContents); // 移动文件
NSFileManager *fm3 = [NSFileManager defaultManager]; NSString *oldName = @"bowen.txt";
NSString *oldPath = [FILEPATH stringByAppendingPathComponent:oldName];
NSString *newName = @"bowen/newBowen.txt";
NSString *newPath = [FILEPATH stringByAppendingPathComponent:newName]; BOOL flag2 = [fm3 moveItemAtPath:oldPath toPath:newPath error:nil]; if (flag2) {
NSLog(@"移动成功");
}
else
NSLog(@"移动失败"); //删除文件
NSFileManager *fm5 = [NSFileManager defaultManager]; NSString *fileName2 = @"bowen.txt";
NSString *filePath2 = [FILEPATH stringByAppendingPathComponent:fileName2]; BOOL flag4 = [fm5 removeItemAtPath:filePath2 error:nil];
if (flag4) {
NSLog(@"文件删除成功");
}else
NSLog(@"文件删除失败"); //拷贝文件
NSFileManager *fm4 = [NSFileManager defaultManager]; NSString *fromName = @"bowen/newBowen.txt";
NSString *fromPath = [FILEPATH stringByAppendingPathComponent:fromName];
NSString *atName = @"bowen.txt";
NSString *atPath =[FILEPATH stringByAppendingPathComponent:atName]; BOOL flag3 = [fm4 copyItemAtPath:fromPath toPath:atPath error:nil]; if (flag3) {
NSLog(@"文件拷贝成功");
}else
NSLog(@"文件拷贝失败"); //杂项操作
NSFileManager *fm6 = [NSFileManager defaultManager];
NSString *fileName3 = @"bowen.txt";
NSString *filePath3 = [FILEPATH stringByAppendingPathComponent:fileName3]; BOOL flag5 = [fm6 fileExistsAtPath:filePath3]; if (flag5) {
NSDictionary *infoDic = [fm6 attributesOfItemAtPath:filePath3 error:nil];
NSLog(@"%@",infoDic);
NSString *size = [infoDic objectForKey:NSFileSize];
NSLog(@"文件大小:%@",size);
}
else
NSLog(@"文件不存在"); //文件遍历(浅遍历,深遍历) NSFileManager *fm7 = [NSFileManager defaultManager]; NSString *directoryName2 = @"bowen";
NSString *directoryPath2 = [FILEPATH stringByAppendingPathComponent:directoryName2];
//浅遍历
NSArray *fileArr = [fm7 contentsOfDirectoryAtPath:directoryPath2 error:nil];
NSLog(@"%@",fileArr);
//深遍历
NSArray *allFileArr = [fm7 subpathsOfDirectoryAtPath:directoryPath2 error:nil];
NSLog(@"%@",allFileArr); //-----------NSFileHandle 文件句柄类(操作文件内容)------------//
//文件读取
NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:FILEPATH1]; NSData *fileData2 = [fh readDataOfLength:];
NSString *dataStr = [[NSString alloc] initWithData:fileData2 encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataStr); NSData *fileData3 = [fh readDataOfLength:];
NSString *dataStr1 = [[NSString alloc] initWithData:fileData3 encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataStr1); [fh seekToFileOffset:];//移动光标位置 NSData *fileData4 = [fh readDataToEndOfFile];
NSString *dataStr2 = [[NSString alloc] initWithData:fileData4 encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataStr2); //文件写入
NSFileHandle *fh1 =[NSFileHandle fileHandleForWritingAtPath:FILEPATH1]; NSString *contents1 = @"Hello Horld";
NSData *contents1Data =[contents1 dataUsingEncoding:NSUTF8StringEncoding]; //[fh1 truncateFileAtOffset:0];//只能在写入的时候用-移动光标位置
[fh1 writeData:contents1Data]; }
return ; }
OC 文件基本操作的更多相关文章
- java之文件基本操作
java之文件基本操作 1 使用 BufferedReader 在控制台读取字符 public static void readChar() throws IOException{ char c; I ...
- swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者
Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...
- Linux - 文件基本操作管理
文件基本操作管理 复制文件和目录 格式: Cp 源文件(文件夹) 新目标文件名(文件夹) 相同目录下,指定文件名. 不同目录下,不需要指定文件名. 参数: –r:递归复制整个目录树. –v:再复制 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...
- Linux 01 Liunx目录结构及文件基本操作
Linux目录结构及文件基本操作 1.Linux的文件组织目录结构(遵循FHS标准) FHS(Filesystem Hierarchy Standard)标准:多数Linux版本采用这种文件组织形式, ...
- Swift基础之OC文件调用Swift代码(在上次的基础上写的)
前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift. 首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父 ...
- 文件基本操作 (C语言)
一切皆文件 ---Linux 头文件 <stdio.h> 中定义了文件的相关操作 #include <stdio.h> 文件操作基本流程: 打开:fopen 相关操作 关闭:f ...
- Linux 目录结构及文件基本操作
Linux 目录结构及文件基本操作 实验介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux ...
- NO.4day LINUX centos 文件基本操作
LINUX centos 文件基本操作 1 LINUX简介 Linux的定义:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CP ...
随机推荐
- python no module named 'win32api'
在cmd下执行 pip install pypiwin32api 即可
- Quartz框架调用Demo
Quartz框架调用Demo 任务调度在JAVA应用程序中运用的十分普遍,掌握QUARTZ是必备的技能; 官网:http://www.quartz-scheduler.org/ 下载最新1.80资源包 ...
- Poisson Blending(Seamless clone)研究和实现
Poisson Blending 实现了非常棒的效果,可以看 <自己动手,实现“你的名字”滤镜> http://www.cnblogs.com/jsxyhelu/p/7216795.htm ...
- max3232
max3232采用专有低压差发送器输出级,利用双电荷泵在3.0V至5.5V电源供电时能够实现真正的RS-232性能,器件仅需四个0.1uF的外部小尺寸电荷泵电容.max3232确保在120kbps数据 ...
- UVa 1451 Average - 斜率优化
A DNA sequence consists of four letters, A, C, G, and T. The GC-ratio of a DNA sequence is the numbe ...
- 通过例子来理解python闭包。
闭包:就是内部函数对enclosing作用域的变量进行引用.(可先参考python函数作用域LEGB) 通过一个例子体会 def func_150(val): passline = 90 if val ...
- IT人士级别的划分
IT领袖:年入过亿(例如任正非.马化腾.李彦宏.丁磊.马云等,包括期权股票以及投资理财等收入.) IT大哥:年入千万(级别次于以上几位大佬的公司老板,不缺钱,普遍对上一条里的人物羡慕嫉妒恨.) IT精 ...
- POJ 1845 Sumdiv(求因数和 + 逆元)题解
题意:给你a,b,要求给出a^b的因子和取模9901的结果. 思路:求因子和的方法:任意A = p1^a1 * p2^a2 ....pn^an,则因子和为sum =(1 + p1 + p1^2 + . ...
- Java 多线程查找文件中的内容
学过了操作系统,突然不知道多线程有什么用了. 看了一下百度,发现多线程,可以提升系统利用率 在系统进行IO操作的时候,CPU可以处理一些其他的东西,等IO读取到内存后,CPU再处理之前的操作. 总之可 ...
- 基础dp 记录
51nod 1134 最长递增子序列 #include<iostream> #include<cstdio> #include<cstring> #include& ...