最近要在模拟器环境下收集一些数据日志。
然后考虑到数据记载和追加功能。
简单代码如下
+(void) appString:(NSString *) s
{
BOOL isExit = [NLCommonUtil isExitOfFile:@"nonotextiphone"];
NSString *filePath = [self FilePathInDocumentByFileName:@"nonotextiphone"];
if (!isExit) {
NSLog(@"%@",@"文件不存在");
NSString *s = [NSString stringWithFormat:@"开始了:\r"];
[s writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
NSFileHandle *outFile;
NSData *buffer;
outFile = [NSFileHandle fileHandleForWritingAtPath:filePath];
if(outFile == nil)
{
NSLog(@"Open of file for writing failed");
}
//找到并定位到outFile的末尾位置(在此后追加文件)
[outFile seekToEndOfFile];
//读取inFile并且将其内容写到outFile中
NSString *bs = [NSString stringWithFormat:@"%@",s];
buffer = [bs dataUsingEncoding:NSUTF8StringEncoding];
[outFile writeData:buffer];
//关闭读写文件
[outFile closeFile];
}
代码比较简单。我这边因为值考虑一个文本文件,文件名直接写死了。
需要的可以将方法添加文件名形参。
1.判断文件是否存在,不存在就创建。
2.利用FileHandle类来实现文本追加。
顺手添上个android上的,因为android上也要测试这个东西。
public static void appString (String s){
String path= Environment.getExternalStorageDirectory() + "/download_JFK/nonotextandroid";
FileWriter writer;
File f = new File(path);
if(!f.exists())
{
try {
f.createNewFile();
writer = new FileWriter(f);
writer.write("开始了:\r");
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
writer = new FileWriter(path, true);
writer.write(s);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
~~~~~~~