• Objective-C:随机的读取文件中的内容


     可以通过改变当前文件的偏移量来实现文件的读取

    -offsetInFile获取文件当前的位移量
    -seekToFileOffset:(NSUInteger)length设置文件当前的位移量
    -readDataOfLength:(NSUInteger)length随机读取文件内容的字节数
    -seekToEndOfFile将文件跳到结尾
     1 //
     2 //  main.m
     3 //  04-NSFileHandle随机读取
     4 //
     5 //  Created by ma c on 15/8/24.
     6 //  Copyright (c) 2015年. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[])
    12 {
    13     @autoreleasepool
    14     {
    15         //创建文件
    16         NSString *str = @"this is a test
    hello world
    How are you?";
    17         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    18         
    19         NSFileManager *fm = [NSFileManager defaultManager];
    20         
    21         if(![fm createFileAtPath:@"1.txt" contents:data attributes:nil])
    22         {
    23             NSLog(@"创建文件失败");
    24             return -1;
    25         }
    26         
    27         //随机读取文件
    28         NSFileHandle *in = [NSFileHandle fileHandleForReadingAtPath:@"1.txt"];
    29         if(in)
    30         {
    31             //读取部分内容
    32             NSData *content = [in readDataOfLength:5];
    33             NSLog(@"%@",[[NSString alloc]initWithData:content encoding:NSUTF8StringEncoding]);
    34             
    35             //查看当前文件偏移量
    36             NSUInteger offset = [in offsetInFile];
    37             NSLog(@"offset:%lu",offset);
    38             
    39             //设置文件偏移
    40             [in seekToFileOffset:10];
    41             
    42             //再读10个字节
    43             content = [in readDataOfLength:10];
    44             NSLog(@"%@",[[NSString alloc]initWithData:content encoding:NSUTF8StringEncoding]);
    45             
    46             //直接跳到文件尾
    47             [in seekToEndOfFile];
    48             
    49             //截取文件或者扩展文件(超出了文件长度)
    50             //[in truncateFileAtOffset:10];
    51         }
    52         [in closeFile];
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    docker工具链概述
    Microsoft.AspNetCore.Authentication.Cookies从入门到精通 (二)
    Microsoft.AspNetCore.Authentication.Cookies从入门到精通 (一)
    阿贝云免费虚拟主机使用体验
    Topshelf 秒建 Windows 服务
    一次兼职项目开发的经历
    修改了my.ini没有效果,MySql的字符集还是没有变成utf8——mysql中文乱码
    【转载】Fiddler工具使用介绍(一)
    C#中$的用法
    系统开发常用模块
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4755923.html
Copyright © 2020-2023  润新知