//
// TextHander.h
// OC10_文件练习
//
// Created by zhangxueming on 15/6/19.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface TextHander : NSObject
+ (
void)replaceStringInTextFile:(NSString *)path withOldString:(NSString *)dstString toNewString:(NSString *
)newString;
+ (
void)replaceStringInDirectory:(NSString *)path withOldString:(NSString *)dstString toNewString:(NSString *)newString fileType:(NSString *
)type;
@end
//
// TextHander.m
// OC10_文件练习
//
// Created by zhangxueming on 15/6/19.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
//
#import "TextHander.h"
@implementation TextHander
+ (
void)replaceStringInTextFile:(NSString *)path withOldString:(NSString *)dstString toNewString:(NSString *
)newString
{
//备份文件 /name /name_bak
NSFileManager *fm =
[NSFileManager defaultManager];
[fm copyItemAtPath:path toPath:[path stringByAppendingString:@"_bak"] error:nil];
//1.创建文件句柄
NSFileHandle *fh =
[NSFileHandle fileHandleForUpdatingAtPath:path];
//2.读取文件
NSData *data =
[fh readDataToEndOfFile];
NSString *dataString =
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//3.替换内容
dataString =
[dataString stringByReplacingOccurrencesOfString:dstString withString:newString];
//4.文件清空
[fh truncateFileAtOffset:
0];
//5.写文件
[fh writeData:[dataString dataUsingEncoding:NSUTF8StringEncoding]];
//6.同步文件
[fh synchronizeFile];
//7.关闭文件
[fh closeFile];
}
+ (
void)replaceStringInDirectory:(NSString *)path withOldString:(NSString *)dstString toNewString:(NSString *)newString fileType:(NSString *
)type
{
//1.遍历目录
NSFileManager *fm =
[NSFileManager defaultManager];
NSArray *contents =
[fm subpathsOfDirectoryAtPath:path error:nil];
// /dic/filename.txt
//2.遍历数组 找到指定类型的文件
for (NSString *item
in contents) {
NSString *name =
[item pathExtension];
if ([name isEqualToString:type]) {
[self replaceStringInTextFile:[path stringByAppendingFormat:@"/%@",item] withOldString:dstString toNewString:newString];
}
}
}
@end
//
// main.m
// OC10_文件练习
//
// Created by zhangxueming on 15/6/19.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "TextHander.h"
//把path指定的文件中的字符串 "him" 替换为 "me”
//[LZXTextHandle replaceStringInTextFile:FILE_PATH withOldString:@"him" toNewString:@"me"];
//以下代码的作用:
//把path指定的文件夹中的txt文件中的字符串"him"替换为字符串"me"
//[LZXTextHandle replaceStringInDirectory:DIR_PATH withOldString:@"him" toNewString:@"me" fileType:@"txt"];
int main(
int argc,
const char *
argv[]) {
@autoreleasepool {
// insert code here...
//NSLog(@"Hello, World!");
//[TextHander replaceStringInTextFile:@"/Users/zhangxueming/Desktop/Test/3.txt" withOldString:@"him" toNewString:@"me"];
[TextHander replaceStringInDirectory:
@"/Users/zhangxueming/Desktop/Test" withOldString:
@"him" toNewString:
@"me" fileType:
@"txt"];
}
return 0;
}
转载于:https://www.cnblogs.com/0515offer/p/4589619.html
相关资源:ABB凸轮开关 - OC系列.pdf