我想提供一个访问器,它提供了一个STDIN的NSInputStream类,它可能有几百兆字节(或千兆字节,尽管可能不太可能)的数据。处理潜在的大型STDIN数据,不止一次
当调用者得到这个NSInputStream时,它应该能够读取它,而不用担心用尽它所包含的数据。换句话说,另一个代码块可能会请求NSInputStream,并希望能够读取它。如果不先将所有的数据拷贝到一个NSData对象中(我认为这会导致内存耗尽),那么我的处理这个选项的选项是什么?返回的NSInputStream不一定是相同的实例,它只需要提供相同的数据。
我现在想出的最好的方法是将STDIN复制到临时文件,然后使用该文件返回NSInputStream实例。这是几乎处理它的唯一方法吗?如果我走临时文件路线,有什么我应该谨慎的吗?
编辑|我应该提到,它不是实际上是 STDIN,这是在一个多线程的FastCGI应用程序中,它是来自STDIN的FCGX_Request.in
流。
非常好,谢谢,我需要自己处理数据,然后再次将其提供给消费者,所以我认为我会随我的第一本能而写入临时文件。 – d11wtq 2010-05-29 07:18:49