ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

SwiftでData(contentOf:)でファイル読み込む処理と、InputStreamでファイルを読み込む処理を書いた(適当な実行時間計測つき)

概要

ずっと書こうと思って放置していたツールを書くために、Swiftでファイルを読み込む処理について調べたので、サンプルコードを残しておく。

サンプルコード

Playgroundで書いたのでうっかりファイルを削除してもいいように、Gistにあげた。

A sample file loading process using swift.

InputStream を使った新しめのサンプルコードがなくて、Appleのドキュメントを読んだり、Stackoverflowのコードを継ぎ接ぎしたりしたので、最適なコードにはなっていない可能性が高い。

また、サンプルコードの最後に実行時間を貼っておいた。 想定していた通り、 Data(contentOf:) で一気にファイルを読み込むより、InputStream で指定バイト数分ずつ読み込むほうが処理時間は短くすみそうだ

参考

https://developer.apple.com/documentation/foundation/data https://developer.apple.com/documentation/foundation/stream https://stackoverflow.com/questions/26360962/receiving-data-from-nsinputstream-in-swift https://stackoverflow.com/questions/6685785/stream-to-get-data-nsinputstream