文件操作:读取文件,写入文件,复制文件
设计的主要类:
1.NSFileHandle ---- 文件写入/读取
2.NSFileManager --- 文件管理
实例:
//
// main.m
// appendData
//
// Created by 5016 on 13-12-17.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import <Foundation/Foundation.h>
/*
*读取文件
*/
void readFile()
{
//读取文件
NSString *homePath = NSHomeDirectory();//获取根目录
NSLog(@"%@",homePath);
NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData/dragon.txt"];//拼接文件路径
NSLog(@"%@",filePath);
/*******************读文件********************/
//1.实例化文件引用
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
//2.寻找文件数据位
NSUInteger len = [fileHandle availableData].length;//获取数据有效长度
NSLog(@"%ld",len);
[fileHandle seekToFileOffset:3];//寻找数据一半的地方
//3.读取数据
NSData *data =[fileHandle readDataToEndOfFile];
//4.转换数据
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"str = %@",str);
//5.关闭文件
[fileHandle closeFile];
}
/*
*写文件
*/
void writeFile()
{
//写文件
NSString *homePath = NSHomeDirectory();//获取根目录
NSLog(@"%@",homePath);
NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData/dragon.txt"];//拼接文件路径
NSLog(@"%@",filePath);
/*******************写文件********************/
//1.实例化文件引用
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
//2.寻找文件数据位置
//[fileHandle seekToFileOffset:20];//设置偏移量
[fileHandle seekToEndOfFile];
NSString *str = @"追加的数据";
//3.数据进行编码
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];//编码
//4.写数据
[fileHandle writeData:data];
//5.关闭文件
[fileHandle closeFile];
}
/*
*拷贝文件
*/
void copyFile()
{
//拷贝文件
NSString *homePath = NSHomeDirectory();//获取根目录
NSLog(@"%@",homePath);
NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData/dragon.txt"];//拼接文件路径
NSLog(@"%@",filePath);
NSString *targetPath = [homePath stringByAppendingPathComponent:@"Desktop/test.txt"];//拼接文件路径
/*******************复制文件********************/
//1.实例化filemanager
NSFileManager *fileManager = [NSFileManager defaultManager];
//2.创建文件
BOOL flag = [fileManager createFileAtPath:targetPath contents:nil attributes:nil];
if (flag) {
NSLog(@"创建成功");
}
else{
NSLog(@"创建失败");
}
NSFileHandle *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:targetPath];//写管道
NSFileHandle *inFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];//读管道
//3.读数据
NSData *data =[inFileHandle readDataToEndOfFile];
//4.写数据
[outFileHandle writeData:data];
//5.关闭文件
[outFileHandle closeFile];
[inFileHandle closeFile];
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
//writeFile();
//readFile();
copyFile();
}
return 0;
}