From 80be740493c000b8318824022ca3ee68d765abdd Mon Sep 17 00:00:00 2001 From: Ihar Katkavets Date: Sat, 26 Aug 2023 14:09:04 +0200 Subject: [PATCH] Create FileStream.md --- FileStream.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 FileStream.md diff --git a/FileStream.md b/FileStream.md new file mode 100644 index 0000000..99fac62 --- /dev/null +++ b/FileStream.md @@ -0,0 +1,22 @@ +# File Input Stream + +`FileInputStream` is used for reading data from a file. It can be added to a ciphers chain +```swift +let inputFileStream = FileInputStream(with: try! FileHandle(forReadingFrom: originalFileURL)) +try inputFileStream.open() +``` +```swift +guard let inputFileStream = FileInputStream(with: originalFileURL) else { + // file not exist + return +} +try inputFileStream.open() +``` +```swift +let tmpBufferLen = 1<<16 // 65KB buffer +var tmpBuffer = Array(repeating: 0, count: tmpBufferLen) +while inputFileStream.hasBytesAvailable { + let readLen = inputFileStream.read(&tmpBuffer, maxLength: tmpBufferLen) + try compressingStream.write(tmpBuffer, length: readLen) +} +```