Objective-C OC中文件读取类(NSFileHandle)介绍和常用使用方法

    • 转自http://www.it165.net/pro/html/201402/9100.html
    • NSFileHandle

      NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等)

      NSFileHandle类主要对文件的内容进行读取和写入操作

      NSFileHandle处理文件的步骤

      1:创建一个NSFileHandle对象

      2:对打开的文件进行I/O操作

      3:关闭文件对象操作

      常用处理方法

      view sourceprint?

      01.+ (id)fileHandleForReadingAtPath:(NSString *)path; //打开一个文件准备读取

      02.+ (id)fileHandleForWritingAtPath:(NSString *)path;  //打开一个文件准备写入

      03.+ (id)fileHandleForUpdatingAtPath:(NSString *)path; //打开一个文件可以更新(读取,写入)

      04.- (NSData *)availableData;      //返回可用的数据

      05.- (NSData *)readDataToEndOfFile;  //从当前的节点位置读取到文件末尾

      06.- (NSData *)readDataOfLength:(NSUInteger)length; //从当前的节点位置开始读取指定长度的数据

      07.- (void)writeData:(NSData *)data;    //写入数据

      08.- (unsigned long long)offsetInFile;   //获取当前文件的偏移量

      09.- (unsigned long long)seekToEndOfFile; //跳转到文件结尾

      10.- (void)seekToFileOffset:(unsigned long long)offset; //跳转到指定文件的指定的偏移量的位置

      11.- (void)truncateFileAtOffset:(unsigned long long)offset;  //设置文件长度

      12.- (void)synchronizeFile;  //文件同步

      13.- (void)closeFile;   //关闭文件

      实例代码

      1(对文件进行加入数据:):

      @autoreleasepool {

      view sourceprint?

      01.NSString *homePath=NSHomeDirectory();

      02.NSLog(@"%@",homePath);

      03.

      04.NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"];

      05.NSLog(@"%@",filePath);

      06.NSFileHandle *fileHandle=[NSFileHandle fileHandleForUpdatingAtPath:filePath];

      07.

      08.[fileHandle seekToEndOfFile];

      09.NSString *[email protected]"测试加入的数据为";

      10.NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];

      11.[fileHandle writeData:data];

      12.[fileHandle closeFile];

      13.}

      14.return 0;

      2:对文件中的数据进行定位:

      view sourceprint?

      1.NSString *homePath=NSHomeDirectory();

      2.NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"];

      3.NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath];

      4.NSUInteger length= [fileHandle availableData].length;

      5.[fileHandle seekToFileOffset:length/2];

      6.NSData *data=[fileHandle readDataToEndOfFile];

      7.NSString *str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

      8.NSLog(@"%@",str);

      view sourceprint?

      1.

      view sourceprint?

      1.

      view sourceprint?

      1.[特别讲一下NSData类的一些方法]

      view sourceprint?

      1.

      view sourceprint?

      1.3:复制文件中的数据

      view sourceprint?

      1.

      view sourceprint?

      1.//复制文件 NSString *homePath=NSHomeDirectory(); NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"]; //NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSString *targetPath=[homePath stringByAppendingFormat:@"/Desktop/outfile"]; NSFileManager *fileManager=[NSFileManager defaultManager]; BOOL result=[fileManager createFileAtPath:targetPath contents:nil attributes:nil]; if(result){ NSLog(@"create success!"); } NSFileHandle *inFileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSFileHandle *outFileHandle=[NSFileHandle fileHandleForWritingAtPath:targetPath]; NSData *inData=[inFileHandle availableData]; //读出文件中所有的数据 //下面开始进行写文件 [outFileHandle writeData:inData]; [inFileHandle closeFile]; [outFileHandle closeFile];

时间: 2024-11-05 11:19:39

Objective-C OC中文件读取类(NSFileHandle)介绍和常用使用方法的相关文章

OC中文件读取类(NSFileHandle)介绍和常用使用方法

NSFileHandle NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等) //判断是否有 tagetPath 文件路径,没有就创建 NSFileManager *fileManage = [NSFileManager defaultManager]; BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil]; if (success) { NSLog(@"cr

CSV文件读取类

最近项目中,经常需要读取Csv文件.基本步骤是: (1)按行读取 (2)然后将一行数据按逗号,分割为字符串数组 (3)将各列字符串转换成相应类型的数据 ,如int double类型 写了一个简单的Csv文件读取类,方便使用,可以按列名或列索引读取数据.将字符串转换成数字变量使用的是stringstream类. 如下: #ifndef CSV_READER_H_ #define CSV_READER_H_ #include <vector> #include <map> #inclu

node.js中文件读取方式中流方式

1.node.js中文件读取流方式: var fs=require("fs"); var data; var s1=fs.createReadStream("input.txt"); s1.on("data",function(txt){ data+=txt; }) s1.on("end",function(){ console.log("文件流式读取成功!") }) 2.管道方式: var fs=requ

MFC中文件对话框类CFileDialog详解及文件过滤器说明

当前位置?:?首页???文章分类?:? 开发 ??? MFC中文件对话框类CFileDialog详解及文件过滤器说明 上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角 下一篇 Word中为图表生成目录 域名迁移公告 2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问! 阅读 大专栏  MFC中文件对话框类CFileDialog详解及文件过滤器说明busuanzi_value_page_pv"> 评

Oracle数据库中调用Java类开发存储过程、函数的方法

Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL,除此之外,还可以用时下最流行的编程语言Java来做开发.随着对oracle的了解越来越多,越来越禁不住oracle的诱惑,oracle技术真的是一门很有趣的学问.之前,我在博客中总结了挺多有关SQL.PL/SQL的,但是对于oracle数据库中Java类的调用却没有总结,也是因为之前不太会,这会儿总

Java项目中每一个类都可以有一个main方法

Java项目中每一个类都可以有一个main方法,但只有一个main方法会被执行,其他main方法可以对类进行单元测试. public class StaticTest { public static void main(String[] args) { Employee[] staff=new Employee[3]; staff[0]=new Employee("Tom",40000); staff[1]=new Employee("Dick",60000); s

数据抓取的一个类,包含一些常用的方法

原文:数据抓取的一个类,包含一些常用的方法 using System;using System.Configuration;using System.IO;using System.Net;using System.Text;using System.Text.RegularExpressions; namespace XXX{    /// <summary>    /// Func 的摘要说明.    /// </summary>    public class Func   

OC中分类、类扩展、Block、协议(由协议引出的代理模式)

一: 分类(Category) 1>Category的概念:就是在不改变原来类的基础上,为类增加一些方法 (1,可以为库中定义的类增加方法:2,可以给自己定义的类增加方           法)仅仅是方法哦 好处:一个类可以有多个文件,编译器会将这些文件按一个类除了,便于团队合作. 2> 代码格式: 自定义类中加分类 Person类 #import "Person.h" @interface Person : NSObject - (void)sayHi; @end @im

详解Js中文件读取机制

前言,文件读取是提高应用体验度的必须接口,因为文件操作在编程应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file">”字段来实现文件上传,这样有很多的局限性,比如无法在本地上传时看到自己上传的文件(如图片),也无法读取到文件内容,审查文件流大小. HTML5中,主流浏览器引擎都支持新的FILE API,为“<input type="file">”提供一个files数组,