//
// main.m
// Foundation框架(2)-NSString2
//
// Created by Mac on 15-1-18.
// Copyright (c) 2015年 vxinyou. All rights reserved.
//
#import
#pragma mark 从文件中读取字符串
void stringInput(){
// 方式一:
// 路径
NSString *path = @"/Users/Mac/Desktop/test.txt";
// 这个方法不能解析中文,已经过期
// NSString *str1 = [NSString stringWithContentsOfFile:path];
// 定义一个NSError变量
NSError *error;
// 制定字符编码为UTF-8:NSUTF8StringEncoding
NSString *str1 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error == nil) {
NSLog(@"读取文件成功:%@", str1);
}else{
NSLog(@"读取文件失败:%@", error);
}
// 方式二:
NSURL *url = [NSURL URLWithString:@"file:///Users/Mac/Desktop/test.txt"];
NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@", str2);
// 从网络中读取数据
NSURL *url2 = [NSURL URLWithString:@"http://wwww.baidu.com"];
NSString *str3 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str3);
}
#pragma mark 把字符串写入文件中
void stringOutput(){
NSString *str = @"我是字符串123456String";
// 如果文件不存在,会自动创建;如果文件夹不存在,则会报错
NSString *path = @"/Users/Mac/Desktop/abc.txt";
NSError *error;
// 如果编码制定错误也会报错,如果设置了像什么拉丁的编码,但是却往文件里面写入中文数据就会报错
// YES代表要进行原子性操作,也就是会创建一个中间的临时文件,等数据全部写入完成才真正创建abc.txt,然后会自动把临时文件删除
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if(error){
// [error localizedDescription]这个方法会返回主要的错误信息
// 如果直接打印error,打印的就是全部错误信息
NSLog(@"写入失败:%@", [error localizedDescription]);
}else{
NSLog(@"写入成功");
}
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// stringInput();
stringOutput();
}
return 0;
}
08-10
08-10
08-10
08-10
08-10