读取和写入 文件 (NSFIleManger 与 NSFileHandle)

读取和写入 文件

//传递文件路径方法

-(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath

{

self = [super init];

if (self != nil) {

_srcPath = [srcPath copy];

_targetPath = [targetPath copy];

}

return self;

}

//开始读文件

-(void)startRead

{

NSFileManager *fileManager = [NSFileManager defaultManager];

//创建文件

BOOL success = [fileManager createFileAtPath:_srcPath contents:nil attributes:NULL];

if (success) {

NSLog(@"文件创建成功!!!");

}

//读取文件

NSFileHandle  *inFilehandle = [NSFileHandle fileHandleForReadingAtPath:_srcPath];

//写入目标文件

NSFileHandle  *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:_targetPath];

//利用文件的属性获取文件的大小,现获取文件的属性,然后通过关键 键 获取文件的大小,在转化为基本数据类型

NSDictionary *dic = [fileManager attributesOfItemAtPath:_srcPath error:nil];

NSNumber *fileNum = [dic objectForKey:NSFileSize];

self.fileSize = [fileNum longLongValue];

BOOL isEnd = YES;

NSAutoreleasePool *pool = nil;

int n = 0;

while (isEnd) {

if (n % 10 ==0) {

[pool release];

pool = [[NSAutoreleasePool alloc] init];

}

NSInteger subSize = self.fileSize - _alredyReadFileSize;

NSData *data;

if (subSize < 5000) {

isEnd = NO;

data = [inFilehandle readDataToEndOfFile];

}else{

data = [inFilehandle readDataOfLength:5000];

self.alredyReadFileSize += 5000;

[inFilehandle seekToFileOffset:_alredyReadFileSize];

}

[outFileHandle writeData:data];

n++;

}

[outFileHandle closeFile];

NSLog(@"复制文件成功");

}

时间: 2024-12-23 19:55:33

读取和写入 文件 (NSFIleManger 与 NSFileHandle)的相关文章

Java 读取、写入文件——解决乱码问题

读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少

Redis 中文入库成功,读取数据写入文件乱码问题

最近需要用到redis ,但是在编码这个问题上,纠结了很久. 需求 : 每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果. 使用的redis模块 : redis-py 问题 : 入库正常,读取数据成功,以GBK编码写入文件出现异常. 通过以下参数连接 redis : client  = redis.StrictRedis(host='localhost', port=6379, db=0, password="***") 从

【转】MFC中用CFile读取和写入文件2

原文网址:http://blog.sina.com.cn/s/blog_623a7fa40100hh1u.html CFile提供了一些常用的操作函数,如表1-2所示. 表1-2  CFile操作函数 函数 含义 Open 打开文件 Close 关闭文件 Flush 刷新待写的数据 Read 从当前位置读取数据 Write 向当前位置写入数据 GetLength 获取文件的大小 Seek 定位文件指针至指定位置 SeekToBegin 定位文件指针至文件头 SeekToEnd 定位文件指针至文件

C#读取和写入文件

一.读取文件 如果你要读取的文件内容不是很多, 可以使用 File.ReadAllText(FilePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding)的方法. 它们都一次将文本内容全部读完,并返回一个包含全部文本内容的字符串 string str = File.ReadAllText(@"c:\temp\ascii.txt"); //也可以指定编码方式  string str2 = File.ReadAllText(@"c:\

C# Byte[]数组读取和写入文件

protected void ByteToString_Click(object sender, EventArgs e) { string content = this.txtContent.Text.ToString(); if (string.IsNullOrEmpty(content)) { return; } //string 转为byte数组 byte[] array = Encoding.UTF8.GetBytes(content); //将byte数组转为string strin

c#通过FileStream读取、写入文件

网上找过一些FileStream读取写入文件的代码,但是都有些小问题. 于是自己整理一下,以备不时之需.说明一下,以下代码我都运行过. 1.FileStream读取文件 // FileStream读取文件 public static string FileStreamReadFile(string filePath) { byte[] data = new byte[100]; char[] charData = new char[100]; FileStream file = new File

php中读取以及写入文件的方法总结

==>读取文件内容(方法一) $fileData = fread($fileStream,filesize($filePath)); 注意: 文本文件读取到网页上显示时,由于换行符不被解释,文本不换行显示, 解决办法:将\r\n替换为<br/>[str_replace('\r\n','<br/>',$fileData);] ==>读取文件内容(方法二) file_get_contents($filePath); 将整个文件读取到一个字符串(内部自动关闭文件流) ==&g

iOS学习 plist读取和写入文件

干iOS开发时间,后经常用来plist文件.  那plist什么文件是它? 它的全称是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist .因此通常被称为 plist文件.文件是xml格式的. Plist文件通经常使用于储存用户设置.也能够用于存储捆绑的信息 我们创建一个项目来学习plist文件的读写. 1.创建项目Plistdemo 项目创建之后能够找到项目相应的plist文件.打开例如以下图所看到的: 在编辑器中显示相似与表格

Scala 读取 以及 写入文件

import java.io.PrintWriterimport java.io.File import scala.io.Source object FileOps { def main(args:Array[String]){ //文件读取 val file=Source.fromFile("D:\\a.txt") for(line <- file.getLines) { println(line) } file.close //文件写入 val writer = new P