zoukankan      html  css  js  c++  java
  • 文件下载与NSOutputStream

    代码:

    #import "ViewController.h"
    
    @interface ViewController () <NSURLConnectionDataDelegate>
    
    @property (nonatomic, strong) NSOutputStream *outputStream;
    
    @end
    
    @implementation ViewController
    
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
        NSString *urlString = @"http://127.0.0.1/file";
        NSURL *url = [NSURL URLWithString:urlString];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [NSURLConnection connectionWithRequest:request delegate:self];
    }
    
    #pragma mark - NSURLConnectionDataDelegate
    
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
        // caches目录路径
        NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
        // 文件名
        NSString *fileName = response.suggestedFilename;
        // 文件完整路径
        NSString *fileFullPath = [cachesPath stringByAppendingPathComponent:fileName];
        NSLog(@"%@", fileFullPath);
        
        // 创建流
        NSOutputStream *outputStream = [[NSOutputStream alloc] initToFileAtPath:fileFullPath append:YES];
        self.outputStream = outputStream;
        
        // 打开流
        [outputStream open];
    }
    
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
        [self.outputStream write:data.bytes maxLength:data.length];
    }
    
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
        // 关闭流
        [self.outputStream close];
    }
    
    @end
  • 相关阅读:
    Python开发——数据类型【字典】
    Python开发——数据类型【元祖】
    Python开发——数据类型【列表】
    Python开发——基础
    Python开发——数据类型【运算符】
    c#中IList<T>与List<T>
    观察者模式(Observer Pattern)
    中介者模式(Mediator Pattern)
    策略模式(Strategy Pattern)
    命令模式
  • 原文地址:https://www.cnblogs.com/xwoder/p/6158280.html
Copyright © 2011-2022 走看看