Tag: stream

什么是Node.js中的Streams3,它与Streams2有什么不同?

我经常听说Streams2和旧stream,但什么是Streams3? 它在Thorsten Lorenz的演讲中被提及 。 我在哪里可以读到,Streams2和Streams3有什么区别。 在Google上进行search时,我也看到它在节点0.11.5的更新日志中提到 , stream:简化stream动,被动数据监听(streams3)(isaacs)

searchstring的有效方法

假设有一个文本stream(或Java中的Reader),我想检查一个特定的string。 文本stream可能非常大,所以一旦findsearchstring,我想返回true,并尝试避免将整个input存储在内存中。 天真地,我可能会尝试做这样的事情(在Java中): public boolean streamContainsString(Reader reader, String searchString) throws IOException { char[] buffer = new char[1024]; int numCharsRead; while((numCharsRead = reader.read(buffer)) > 0) { if ((new String(buffer, 0, numCharsRead)).indexOf(searchString) >= 0) return true; } return false; } 当然这不能检测给定的searchstring,如果它发生在1k缓冲区的边界上: search文本:“stackoverflow” 数据stream缓冲区1:“abc ……… stack” stream缓冲区2:“溢出……. xyz” 我怎样才能修改这段代码,使它正确地在缓冲区的边界上find给定的searchstring,但没有将整个stream加载到内存中? 编辑:注意当为一个stringsearchstream时,我们试图最小化从stream中读取的数量 (以避免networking/磁盘中的延迟),并保持内存使用恒定,而不pipestream中的数据量如何。 string匹配algorithm的实际效率是次要的,但很明显,find使用这些algorithm中更高效的解决scheme将是很好的。

用于Scala中Streams的用例

在Scala中有一个Stream类,非常像迭代器。 迭代器和stream在斯卡拉之间的主题差异? 对两者之间的相似性和差异提供了一些见解。 看到如何使用stream是非常简单的,但我没有很多常见的使用情况下,我会使用stream而不是其他工件。 我现在的想法是: 如果你需要使用无限的系列。 但是这对我来说似乎不是一个常见的用例,所以它不符合我的标准。 (请纠正我,如果这是常见的,我只是有一个盲点) 如果您有一系列数据需要计算每个元素,但您可能需要重复使用多次。 这很弱,因为我可以将它加载到一个列表中,这个列表在开发人员群体的大部分概念上更容易遵循。 也许有大量的数据或计算成本很高的系列,并且很有可能你所需要的项目不需要访问所有的元素。 但是在这种情况下,迭代器将是一个很好的匹配,除非需要进行多次search,在这种情况下,即使效率稍低,也可以使用列表。 有一系列复杂的数据需要重复使用。 这里也可以使用一个列表。 虽然在这种情况下,这两种情况将同样难以使用,并且由于不是所有的元素都需要被加载,所以Stream将会更好。 但是,不是那么平常……还是这样? 那么我错过了什么大用途? 或者大部分是开发人员偏好? 谢谢

FileStream和创build文件夹

只是一个简单的问题。 我正在使用这样的东西 FileStream fs = new FileStream(fileName, FileMode.Create); 我想知道是否有一个参数,我可以传递给它强制它创build文件夹,如果它不存在。 此时如果没有find文件夹则抛出exception。 如果有更好的方法,然后使用FileStream我打开想法。

一个优雅的方式来消费(BinaryReader的所有字节)?

用BinaryReader模拟StreamReader.ReadToEnd方法有没有优雅? 也许把所有的字节放入一个字节数组? 我这样做: read1.ReadBytes((int)read1.BaseStream.Length); …但是一定有更好的办法。

如何使用最大streamalgorithm在图上find最小切点?

我需要在图表上find最小切割。 我一直在读stream动networking,但是我能find的是最大streamalgorithm,例如Ford-Fulkerson,push-relabel等。给定最大stream最小割定理,是否可以使用其中一种algorithm来查找使用最大streamalgorithm在图上最小化切割? 怎么样? 到目前为止,我发现的最好的信息是,如果我发现“饱和”的边缘,即stream量等于容量的边缘,则这些边缘对应于最小切割。 真的吗? 这听起来并不完全正确。 确实,最小切割的所有边缘都是饱和的,但是我相信也可能存在饱和边缘,它们不在最小切割“path”之内。

stream作为WCF返回值 – 谁处置它?

假设我有以下的WCF实现: public Stream Download(string path) { FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read); return stream; } 谁负责处理退回的价值? 毕竟,networking故障可能发生,因此消费者可能无法处置它。

创buildstream畅的API

如何创build一个stream畅的API? 这是主要使用扩展方法吗?

如何读整个stream到一个std ::string?

我正在尝试将整个stream(多行)读入一个string。 我正在使用这个代码,它的工作原理,但它的冒犯我的风格…当然有一个更简单的方法? 也许使用stringstreams? void Obj::loadFromStream(std::istream & stream) { std::string s; std::streampos p = stream.tellg(); // remember where we are stream.seekg(0, std::ios_base::end); // go to the end std::streamoff sz = stream.tellg() – p; // work out the size stream.seekg(p); // restore the position s.resize(sz); // resize the string stream.read(&s[0], sz); // and finally, read in the […]

如何用Djangostream式传输HttpResponse

我试图得到Django(1.2)的stream式响应的“hello world”。 我想出了如何使用发生器和yield函数。 但是响应仍然不stream。 我怀疑有一个中间件,可能是ETAG计算器? 但我不知道如何禁用它。 有人可以帮忙吗? 到目前为止,这里是stream媒体的“hello world”: def stream_response(request): resp = HttpResponse( stream_response_generator()) return resp def stream_response_generator(): for x in range(1,11): yield "%s\n" % x # Returns a chunk of the response to the browser time.sleep(1)