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
  • 相关阅读:
    系统安全方案
    模态框的使用
    thinkphp修改分页为post方式
    手动配置apache、php
    Djang之ModelForm组件的简单使用
    连接池还是连接迟?
    金融量化
    luasocket编译安装遇到的坑
    numpy&pandas补充常用示例
    Matplotlib画正弦余弦曲线
  • 原文地址:https://www.cnblogs.com/xwoder/p/6158280.html
Copyright © 2011-2022 走看看