NSOutputStream NSInputStream 简单用法
来源:互联网 发布:在哪里买域名比较好 编辑:程序博客网 时间:2024/06/07 00:37
#import "ViewController.h"@interface ViewController ()<NSStreamDelegate>@property (nonatomic,strong) NSString *filePath;@property (nonatomic,assign) int location;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self createTestFile];}// 创建一个测试文件。- (void)createTestFile{ _filePath = NSHomeDirectory(); _filePath = [_filePath stringByAppendingPathComponent:@"Documents/test_data.txt"]; NSError *error; NSString *msg = @"测试数据,需要的测试数据,测试数据显示。"; bool isSuccess = [msg writeToFile:_filePath atomically:true encoding:NSUTF8StringEncoding error:&error]; if (isSuccess) { NSLog(@"数据写入成功了"); }else{ NSLog(@"error is %@",error.description); } // 追加数据 NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:_filePath]; [handle seekToEndOfFile]; NSString *newMsg = @".....我将添加到末尾你处"; NSData *data = [newMsg dataUsingEncoding:NSUTF8StringEncoding]; [handle writeData:data]; [handle closeFile];}// NSOutPutStream 处理 写- (IBAction)outPutStramAction:(id)sender { NSString *path = @"/Users/yubo/Desktop/stream_ios.txt"; NSOutputStream *writeStream = [[NSOutputStream alloc]initToFileAtPath:path append:true]; // 手动创建文件, 如果是系统创建的话, 格式编码不一样。 bool flag = [@"Ios----->" writeToFile:path atomically:true encoding:NSUTF8StringEncoding error:nil]; if (flag) { NSLog(@"创建成功"); } writeStream.delegate = self; [writeStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; [writeStream open];}// NSInPutStream 处理 读- (IBAction)inPutStreamAction:(id)sender { NSInputStream *readStream = [[NSInputStream alloc]initWithFileAtPath:_filePath]; [readStream setDelegate:self]; // 这个runLoop就相当于死循环,一直会对这个流进行操作。 [readStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; [readStream open];}#pragma mark NSStreamDelegate代理 - (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode{ switch (eventCode) { case NSStreamEventHasSpaceAvailable:{ // 写 NSString *content = [NSString stringWithContentsOfFile:_filePath encoding:NSUTF8StringEncoding error:nil]; NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding]; NSOutputStream *writeStream = (NSOutputStream *)aStream; [writeStream write:data.bytes maxLength:data.length]; [aStream close]; // 用buf的还没成功 // [writeStream write:<#(nonnull const uint8_t *)#> maxLength:<#(NSUInteger)#>]; 乱码形式 break; } case NSStreamEventHasBytesAvailable:{ // 读 uint8_t buf[1024]; NSInputStream *reads = (NSInputStream *)aStream; NSInteger blength = [reads read:buf maxLength:sizeof(buf)]; if (blength != 0) { NSData *data = [NSData dataWithBytes:(void *)buf length:blength]; NSString *msg = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"文件内容如下:----->%@",msg); }else{ [aStream close]; } break; } case NSStreamEventErrorOccurred:{// 错误处理 NSLog(@"错误处理"); break; } case NSStreamEventEndEncountered: { [aStream close]; break; } case NSStreamEventNone:{// 无事件处理 NSLog(@"无事件处理"); break; } case NSStreamEventOpenCompleted:{// 打开完成 NSLog(@"打开文件"); break; } default: break; }}@end
0 0
- NSOutputStream NSInputStream 简单用法
- NStream、NSOutputStream、NSInputStream
- NSInputStream 和 NSOutputStream
- 文件读写与NSInputStream的简单使用
- 通过NSOutputstream读写文件
- 网络:NSOutputStream的使用
- 关于数据流NSOutputStream
- ios-NSFileHandle和NSOutputStream
- CFReadStream and NSInputStream
- NSInputStream读取文件
- 上传大文件 NSInputStream
- NSOutputStream-保存网络资源到本地
- Cocoa Stream 系列3--NSOutputStream的使用
- [IOS] NSOutputStream向输出流写数据
- [IOS] NSOutputStream向输出流写数据
- iOS NSOutputStream向输出流写数据
- 用NSInputStream 来实现图片上传
- Cocoa Stream 系列2---NSInputStream的使用
- 机器学习经典书籍
- windows内网渗透的一些笔记
- 手把手教你一小时学会搭建网站
- jQuery过滤器
- 使用Apktool修改apk
- NSOutputStream NSInputStream 简单用法
- Cantor表
- POJ 2109 - Power of Cryptography
- spark集群与spark HA高可用快速部署 spark研习第一季
- Java 中对于枚举双值的使用
- the Sum of Cube
- 数字交换
- iOS 用户登录 sh1加密
- android 的webView加载h5,和h5的交互(java和JavaScript的交互)