Skip to content

zhenyiyi/FLInputStreamTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FLInputStreamTest

后台文件 I/O

https://github.com/zhenyiyi/FLInputStreamTest.git

我们将一整个文件加载到了内存中。这种方式对于较小的文件没有问题,但是受限于 iOS 设备的内存容量,对于大文件来说的话就不那么友好了。 要解决这个问题,我们将构建一个类,它负责一行一行读取文件而不是一次将整个文件读入内存,另外要在后台队列处理文件,以保持应用相应用户的操作。

为了达到这个目的,我们使用能让我们异步处理文件的 NSInputStream 。 根据官方文档的描述: https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/TechniquesforReadingandWritingCustomFiles/TechniquesforReadingandWritingCustomFiles.html 如果你总是需要从头到尾来读/写文件的话,streams 提供了一个简单的接口来异步完成这个操作

不管你是否使用 streams,大体上逐行读取一个文件的模式是这样的:

1. 建立一个中间缓冲层以提供,当没有找到换行符号的时候可以向其中添加数据

2. 从 stream 中读取一块数据

3. 对于这块数据中发现的每一个换行符,取中间缓冲层,向其中添加数据,直到(并包括)这个换行符,并将其输出

4. 将剩余的字节添加到中间缓冲层去

5. 回到 2,直到 stream 关闭

About

后台文件 I/O

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published