我正在使用Swift编写的命令行应用程序,在读取输入时遇到一些问题。我想收集文件列表作为应用程序的参数和@SpringBootApplication(exclude = { org.activiti.spring.boot.SecurityAutoConfiguration.class})
之类的实用程序的管道数据。例如:
find
参数很简单,但是从管道数据读取时遇到了问题。如果我这样做:
wrench -f aFile.txt
find . -name *.txt | wrench
它适用于管道数据,但未管道传输时挂起。
如果我是
let standardInput = FileHandle.standardInput
let data = standardInput.readDataToEndOfFile()
print("Files: \(String(data: data, encoding: .utf8)!)")
不进行配管时,它再次挂起。另一种选择:
while let line = readLine() {
print("\(line)")
}
似乎可以工作,但是当文件很多时,程序将在读取所有输入之前结束。
因此,我还需要找到一种使程序始终运行下去的方法。文件已被读取和处理。
我已经进行了很多搜索,但是到目前为止,找不到能够做到这一点的任何人(这似乎很奇怪,我本以为会做很多事情)。
有人知道如何解决这些问题吗?