0
Swiftのファイルから連続して読み込もうとしています。ファイルの下部に連続してデータが追加されます。私はこれを達成するためのInputStreamを使用しようとしている:Swiftで閉じるのではなく、endEncounteredに達するInputStreamを教えてください
func setup() {
self.inputStream = InputStream(fileAtPath: "/path/to/file.txt")
self.inputStream.delegate = self
self.inputStream.schedule(in: RunLoop.current, forMode: .defaultRunLoopMode)
self.inputStream.open()
}
func stream (_ aStream : Stream, handle eventCode : Stream.Event) {
let inStream = aStream as? InputStream
switch (eventCode){
case Stream.Event.openCompleted:
print("Stream opened")
break
case Stream.Event.hasBytesAvailable:
print("HasBytesAvailable")
let bufferSize = 1024
var buffer = Array<UInt8>(repeating: 0, count: bufferSize)
let bytesRead = inStream?.read(&buffer, maxLength: bufferSize)
if bytesRead! >= 0 {
let output = NSString(bytes: &buffer, length: bytesRead!, encoding: String.Encoding.utf8.rawValue)
print ("\(output!)")
}
break
case Stream.Event.errorOccurred:
print("ErrorOccurred")
break
case Stream.Event.endEncountered:
print("EndEncountered")
break
default:
print("unknown")
}
}
それが現在の.txtファイルの状態の終わりに当たったときしかし、それはendEncounteredを送信し、(理にかなって)読むことをやめます。私はそれを続けるように指示する方法を理解する必要があります。助言がありますか?ありがとう。
は、あなただけの新しいファイルリーダーを作成し、最後に中断したところに開始インデックスを設定できませんでしたか?ストリームには「リセット」メソッドもあります。 – Carcigenicate