假设我有一个 8 字节长的文件,仅包含 ASCII 字符:brownfox。
我不想加载 2 字节的块并对 2[UInt8]字节大小的块进行操作,而不是加载整个文件并处理 if,因此操作如下:
br(而不是整个文件)rbow nf ox背后的原因:这样,如果我处理一个 1GB 文本的文件,我实际上不必有 1GB 的可用 RAM(或 2GB 用于输入和输出文件)。
这种文件处理方法对我来说对于加密和发送到云解决方案很重要。
我正在使用这个扩展:
extension Data {
/**
Consumes the specified input stream, creating a new Data object
with its content.
- Parameter reading: The input stream to read data from.
- Note: Closes the specified stream.
*/
init(reading input: InputStream) {
self.init()
input.open()
let bufferSize = 1024 …Run Code Online (Sandbox Code Playgroud) swift ×1