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 ...
随机推荐
- P4555 [国家集训队]最长双回文串
P4555 [国家集训队]最长双回文串 manacher 用manacher在处理时顺便把以某点开头/结尾的最长回文串的长度也处理掉. 然后枚举. #include<iostream> # ...
- UVA1714 Keyboarding(bfs)
UVA1714 Keyboarding bfs 坑点很多的一题(由于一本通的辣鸡翻译会错题意*n). 1.多组数据 2.如果某方向上没有不同字符光标不会动 我们每次预处理出每个点向四个方向下次到达的点 ...
- 解决Vue循环中子组件不实时更新的问题
问题描述 使用Element-UI中的table组件时会遇到一个常见的问题.当在el-table中调用子组件的时候会出现数据更新后,子组件没有重新渲染的问题. eg:资源列表中的健康度组件. 代码如下 ...
- Go第六篇之结构体剖析
Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. Go 语言中的类型可以被实例化,使用new或&a ...
- 九数组分数|2015年蓝桥杯B组题解析第五题-fishers
九数组分数 1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. #include <stdio.h> void t ...
- <OFFER03>03_01_DuplicationInArray
#include<cstdio> bool duplicate(int numbers[], int length, int* duplication) { ) return false; ...
- hdoj-2028-Lowest common multiple plus
题目:Lowest common multiple plus 代码: #include<stdio.h> int common(int a,int b)//计算最大公约数 { int c= ...
- 提高Intellij创建Maven工程的速度
按照默认的方式创建Maven工程的时候会发现Maven插件加载的很慢如下 解决方法:在创建的过程中,在Properties中添加一个参数archetypeCatalog=internal . 因为ar ...
- ubuntu 14.04 server(amd64) 安装ros indigo
1.添加软件源(添加了正确的软件源,操作系统就知道去哪里下载程序,并根据命令自动安装软件) sudo sh -c 'echo "deb http://packages.ros.org/ros ...
- MVC 子对象数据传递
1.接受参数 public ActionResult Address(User user) { return View(); } 2. User对象类型 public class User { pub ...