使用NSFileHandle读取文件中指定位置的指定长度,内容为中文的txt是乱码//到本地读取相关书籍(先显示第一页的,然后可以再上一页下一页) 路径、当前页、读取的文件字节数(每页显示的)
-(void)bookName:(NSString *)name bookcurrent:(NSInteger)bookcurrentPage bookpageEvery:(NSInteger)pageEveryByte {
//文件路径
NSString *bookpathname = [NSString stringWithFormat:@"Documents/%@",name];
NSString *filename = [NSHomeDirectory() stringByAppendingPathComponent:bookpathname];
//读取数据
NSFileHandle *filehand = [NSFileHandle fileHandleForReadingAtPath:filename];
//将光标定位到要读取的开始位置
[filehand seekToFileOffset:bookcurrentPage * pageEveryByte];
//读取的每页数据
NSData *chunk = [filehand readDataOfLength:pageEveryByte];
//将读取的数据进行转换
NSString * line = [[NSString alloc] initWithData:chunk encoding:NSUTF8StringEncoding];
//将读取出来的数据读取到控件上
textview.text = line;
}如上代码,line为乱码,有时为null,请问怎么回事?
-(void)bookName:(NSString *)name bookcurrent:(NSInteger)bookcurrentPage bookpageEvery:(NSInteger)pageEveryByte {
//文件路径
NSString *bookpathname = [NSString stringWithFormat:@"Documents/%@",name];
NSString *filename = [NSHomeDirectory() stringByAppendingPathComponent:bookpathname];
//读取数据
NSFileHandle *filehand = [NSFileHandle fileHandleForReadingAtPath:filename];
//将光标定位到要读取的开始位置
[filehand seekToFileOffset:bookcurrentPage * pageEveryByte];
//读取的每页数据
NSData *chunk = [filehand readDataOfLength:pageEveryByte];
//将读取的数据进行转换
NSString * line = [[NSString alloc] initWithData:chunk encoding:NSUTF8StringEncoding];
//将读取出来的数据读取到控件上
textview.text = line;
}如上代码,line为乱码,有时为null,请问怎么回事?
解决方案 »
- Map 画线问题-[MKPolyline interiorPolygons]: unrecognized selector sent to instance
- 如何知道自己点击的大头针按钮是哪一个
- iphone有没有api可以自动配置vpn的ip/用户名/密码的信息,然后自动连接到该vpn的办法?
- iphone需求,看哪个高手能做,谢谢!
- iOS开发环境如何搭建并实现第一个HelloWord?
- 请教,手机恢复出厂设置后,还能否从存储中读回数据
- ios之objective-c的一个问题
- cocos2d-x 开发iOS游戏,会用到C语言编写socket程序么?
- 关于内存警告的问题
- ios 中子类初始化时需要调用父类初始化 [super init] ,不调用会怎么样?
- 问个关于99美金的弱弱的问题
- 猎隼”涉密计算机上网监察取证系统简体中文绿色版病毒问题
NSString * line = [[NSString alloc] initWithData:chunk encoding:NSUTF8StringEncoding];
如果文件内容不是UTF8的就会出问题了.
在苹果电脑上,保存文本时,根本就没看到有 选择文本格式 这一项,就直接保存了,所以不知道什么格式。
我在XP上保存了UTF8格式的文本,然后拷到苹果电脑上,读取,还是乱码,要么就null
另外,注意下,UTF8, Unicode格式数据是否包含了标志位, 类似FF FE这样的东西,是否需要去掉读取。