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
  • 相关阅读:
    Hadoop安装配置(ubuntu-12.04.2-server-amd64)
    初识hadoop
    mybatis多表关联配置
    mybatis的详解
    SpringMVC学习笔记
    spring注解
    web filter用spring注入对象
    luence全文检索(数据库检索)
    C++ inline 函数
    Ubuntu16.04 QT5编译出现cannot find -lGL和collect2:error:ld r
  • 原文地址:https://www.cnblogs.com/xwoder/p/6158280.html
Copyright © 2011-2022 走看看